В настоящее время я работаю в лаборатории и хотел бы узнать, как решить следующую проблему, на которую я потратил не менее двух часов:
Меня просят создать ArrayList, содержащий значения 1, 2, 3, 4 и 10. Хотя обычно у меня никогда не возникает проблем с созданием ArrayList с указанными значениями, на этот раз у меня возникают проблемы. Должен ли я создать ArrayList вне метода или внутри метода? Как бы я ни пытался это сделать, мне были представлены многочисленные сообщения об ошибках. Как добавить значения в этот параметр ArrayList? Я попытался добавить значения к нему при вызове из основного метода, но это все еще не работает. Вот метод, о котором идет речь.
public static double ScalesFitness(ArrayList<Double> weights){
//code emitted for illustration purposes
}
Если бы кто-нибудь мог мне помочь, это было бы очень признательно. Если вам понадобится больше кода, пожалуйста, дайте мне знать.
Большое спасибо.
Мик.
РЕДАКТИРОВАТЬ: код для рассматриваемого класса выглядит следующим образом:
import java.util.*;
public class ScalesSolution
{
private static String scasol;
//Creates a new scales solution based on a string parameter
//The string parameter is checked to see if it contains all zeros and ones
//Otherwise the random binary string generator is used (n = length of parameter)
public ScalesSolution(String s)
{
boolean ok = true;
int n = s.length();
for(int i=0;i<n;++i)
{
char si = s.charAt(i);
if (si != '0' && si != '1') ok = false;
}
if (ok)
{
scasol = s;
}
else
{
scasol = RandomBinaryString(n);
}
}
private static String RandomBinaryString(int n)
{
String s = new String();
for(int i = 0; i > s.length(); i++){
CS2004.UI(0,1);
if(i == 0){
System.out.println(s + "0");
}
else if(i == 0){
System.out.println(s + "1");
}
}
return(s);
}
public ScalesSolution(int n)
{
scasol = RandomBinaryString(n);
}
//This is the fitness function for the Scales problem
//This function returns -1 if the number of weights is less than
//the size of the current solution
public static double scalesFitness(ArrayList<Double> weights)
{
if (scasol.length() > weights.size()) return(-1);
double lhs = 0.0,rhs = 0.0;
double L = 0;
double R = 0;
for(int i = 0; i < scasol.length(); i++){
if(lhs == 0){
L = L + i;
}
else{
R = R + i;
}
}
int n = scasol.length();
return(Math.abs(lhs-rhs));
}
//Display the string without a new line
public void print()
{
System.out.print(scasol);
}
//Display the string with a new line
public void println()
{
print();
System.out.println();
}
}
Другой файл класса, который я использую (Lab7):
import java.util.ArrayList;
public class Lab7 {
public static void main(String args[])
{
for(int i = 0 ; i < 10; ++i)
{
double x = CS2004.UI(-1, 1);
System.out.println(x);
}
System.out.println();
ScalesSolution s = new ScalesSolution("10101");
s.println();
}
}