-3
public double getAllElementsInCollection(ArrayList<Double> nameofCollection){

      double result = 0.0;
      for(Double nameofDouble : nameofCollection){
        result = nameofDouble;
      }
      return  result;       
}

我正在尝试编写一个方法来返回ArrayList传递它的所有元素,但我只是得到最后一个是插入数组的方法。我怎样才能完成这项任务?从昨天开始,我一直在尝试这样做。我注意到如果我这样做System.out.println(nameofDouble);实际上会打印所有元素..但我不想打印它们。我想返回传递的所有内容ArrayList

4

5 回答 5

0

这个问题没有意义……你想把ArrayList变成double[]吗?

只需调用:

public Double[] getAllElementsInCollection(ArrayList<Double> nameofCollection){

    return  nameofCollection.toArray(new Double[nameofCollection.size()]);

}
于 2013-03-15T17:59:27.890 回答
0

您可以通过以下方式更改方法以返回ArrayList可以进一步打印的 in String 的所有元素。

public String getAllElementsInCollection(ArrayList<Double> nameofCollection){

      return java.util.Arrays.toString(nameofCollection);
}
于 2013-03-15T18:23:28.830 回答
0

你可以做以下两件事之一:

首先:

ArrayList<Double> list = new ArrayList<Double>();

...

Double[] elements = list.toArray(new Double[list.size()]);

或者,如果您想使用该方法:

public double[] getAllElementsInCollection(ArrayList<Double> list){
    double[] elements = new double[list.size()];
    for(int i = 0; i < elements.length; i++){
        elements[i] = list.get(i);
    }
    return elements;

}
于 2013-03-15T18:00:42.810 回答
0

你搞错了。首先,您的方法的返回类型是双精度,这表明您只能返回一个双精度值,而不是整个数组。此外,变量“结果”将只包含一个值。所以这是您的代码的修改版本:

public List<Double> getAllElementsInCollection(List<Double> nameofCollection){

  List<Double> resultList = new ArrayList<Double>();
  for(Double nameofDouble : nameofCollection){
    // some processing on the elements (if required)
    resultList.add(nameofDouble);
  }
  return  resultList;       

}

另外,我建议您使用超类/接口(例如 List 而不是 ArrayList)作为参数或返回类型,因为您可能不知道传递给方法的实际参数(例如 LinkedList 或 ArrayList)。为此,请通读 OOP 概念。多态性样本:sample1sample2

于 2013-03-15T18:13:37.573 回答
0

您的问题不清楚,“返回所有元素”是什么意思?ArrayList 包含所有元素,您希望以哪种形式返回它们?

查看您的代码,您的意思是所有元素的总和吗?那你就犯了一个小错误。您的代码result = nameofDouble只是替换结果,因此返回最后一个。result = result + nameofDoubleresult += nameofDouble将所有元素相加。

于 2013-03-15T23:08:18.000 回答