Java ArrayList<Double> en tant que Paramètre

Je suis actuellement en train de travailler sur un laboratoire et je voudrais savoir comment gérer le problème suivant que j'ai passé au moins deux heures sur:

Je suis invité à créer une liste de tableaux contenant les valeurs 1, 2, 3, 4 et 10. Alors que j'ai l'habitude de ne jamais avoir aucun problème pour la création d'une liste de tableaux avec ces valeurs, j'ai du mal cette fois. Dois-je créer le ArrayList hors de la méthode ou de à l'intérieur la méthode? Selon la façon dont je l'ai essayé, j'ai été présenté avec de nombreux messages d'erreur. Comment puis-je ajouter des valeurs à cette liste de tableaux en paramètre? J'ai tenté d'ajouter des valeurs lors de l'appel de la méthode main, mais cela ne fonctionne toujours pas. Voici la méthode en question.

public static double ScalesFitness(ArrayList<Double> weights){
    //code emitted for illustration purposes
}

Si quelqu'un pouvait m'aider ce serait très apprécié. Si plus de code est requis, alors s'il vous plaît laissez-moi savoir.

Je vous remercie beaucoup.

Mick.

EDIT: le code de La classe en question est comme suit:

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();
}
}

L'autre fichier de classe que j'utilise (Lab7) est:

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();
}
}
Définir "Ne fonctionne pas"? Peut-être un peu de code et des messages d'erreur? Le snippit ci-dessus est très bien.
Salut Brian. Si je tente d'ajouter ce qui suit à l'extérieur de la méthode: ArrayList<Double> poids = {1, 2, 3, 4, 10}; puis je me suis présenté avec le message d'erreur suivant: incompatibilité de Type: impossible de convertir de type int[] pour ArrayList<Double>. Je suis alors invité à modifier le type de tableau int[] qui n'est pas ce que je cherche à faire. Si j'ajoute la même déclaration dans la méthode, je suis invité à renommer 'poids' et, encore une fois, pour changer le type de tableau int[]. J'espère que cette aide?
les réponses ci-dessous d'autres doivent maintenant aider. Quand vous dites {1, 2, 3, 4, 10} c'est un tableau implicite de int (int[]), vous ne pouvez pas donner à ArrayList<Double>. Si vous n'avez pas besoin des fonctionnalités de la ArrayList, vous pourriez tout aussi bien utiliser double[] myWeights = { 1.0, 2.0, 3.0, 4.0, 10.0 } et votre méthode de prendre double[] weights

OriginalL'auteur MusTheDataGuy | 2011-03-14