2013-03-15 52 views
-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內部的所有內容。返回一個ArrayList的所有元素,而不是將它們打印

+1

好吧,一個ArrayList可能會包含其中不止一個。 當你說「返回」一切,你是什麼意思?因爲你的方法只返回一個double。 – Austin 2013-03-15 17:54:33

+0

只要做:'nameOfCollection.toArray(new Double [nameOfCollection.size()]);'它會給你一個在列表中找到的'Double'值的數組。 – 2013-03-15 17:55:21

+0

你如何期待這段代碼返回'ArrayList'包含的所有元素?在這種情況下返回的元素是'ArrayList'中的最後一個(在循環結束之後)。 – Lion 2013-03-15 17:55:26

回答

0

這個問題沒有意義...你想把ArrayList變成double []嗎?

只需撥打:

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

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

} 
+0

即時只是一個beginer在這裏只是做一些測試..我只是想寫一個方法,我通過了一個arraylist和它應該返回給我這樣的ArrayList裏面的所有值。我所做的代碼是使用雙例如..但我不知道..這就是爲什麼我發佈它 – user1535963 2013-03-15 18:02:41

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; 

} 
+0

簽名需要'公衆雙[] ....' – 2013-03-15 18:02:02

+0

對不起,固定。 – 2013-03-15 18:02:50

0

你明白了。首先你的方法的返回類型是double,這表明你可以返回一個double值而不是整個數組。變量'result'也只包含一個值。因此,這裏是你的代碼的修改後的版本:

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;  

}

另外,我建議你使用超類/接口(如列表,而不是ArrayList的)作爲參數或返回類型的,因爲你可能不知道傳遞給方法的實際參數(如LinkedList或ArrayList)。爲此,徹底閱讀面向對象的概念。多態性樣本:sample1sample2

+0

創建相同的**新**'List'並返回這個新的'List'的原因是什麼? – Lion 2013-03-15 18:32:16

+0

是的。這個答案沒有意義......你可以返回nameOfCollection並完成它。 – Kevin 2013-03-15 18:35:28

+0

如果您沒有執行任何操作,那麼爲什麼您需要調用該方法並在第一個位置返回相同的List。我在示例中創建了一個新列表的原因是,如果您想進行任何操作並且不想更改原始列表中的值。我也在代碼中添加了評論。 – 2013-03-15 18:39:04

0

您可以按以下方式來返回字符串,可以進一步印刷的ArrayList所有元素改變你的方法。

public String getAllElementsInCollection(ArrayList<Double> nameofCollection){ 

     return java.util.Arrays.toString(nameofCollection); 
} 
0

你的問題不清楚,你是什麼意思與「返回所有元素」? ArrayList具有所有元素,在哪種形式下可以返回它們?

看你的代碼,你的意思是所有元素的總和?那麼你只是有一點點錯誤。您的代碼result = nameofDouble只是替換結果,因此最後一個返回。 result = result + nameofDoubleresult += nameofDouble將總和所有元素。

相關問題