2013-07-17 256 views
-6

有沒有辦法將ArrayList作爲參數傳遞給方法?這是我迄今爲止沒有工作:將ArrayList傳遞給方法?

int[] exampleMethod(ArrayList<int> exampleList) { 

} 

任何幫助,非常感謝!

+0

是的,這是正確的,是什麼問題? –

+7

查看所有試圖回答重複問題而不是投票結束的人(尤其是那些擁有超過3k代表的人)。 –

+2

我搜索了它,並找不到它,所以顯然值得有關於它的另一個問題,那麼不是嗎?有人可以很容易地用我的措辭而不是你的措辭來尋找它,這可以幫助他們。 –

回答

1

Yss。

使用包裝類。

int[] exampleMethod(ArrayList<Integer> exampleList) { 

} 
1

使用包裝類:

int[] exampleMethod(ArrayList<int> exampleList) { 

} 

List<E>不能把基本數據類型一樣int,因此我們提供了與他們的包裝類型,如Integer。您也可以通過接口類型而不是實現類型來提高可用性。

閱讀Oracle tutorials在這裏。

2

更換intInteger那麼這將切切實實的工作:)
因此,這將是

int[] exampleMethod(ArrayList<Integer> exampleList) { 

} 

請記住,集合總是期待包裝類而不是基本數據類型。
int是原始數據類型,Integer是它的包裝類。

1

試試這個

int[] exampleMethod(ArrayList<Integer> exampleList) { 


    } 
1

正如已經已經注意到,您必須使用包裝類

int[] foo(List<Integer> oArray) 
{ 
} 

int爲基本類型,所以你不能在List使用它。這也適用於其他基本類型,如char,boolean,float等。在所有這些情況下,當您在需要對象的地方使用它們時,必須使用它們的類對應項(例如在Map中)。

正如你在我的例子中看到的,你應該在你的方法中接受一個List<Integer>,而不是ArrayListArrayList是一個專門的類,所以當你將其限制到ArrayList時,你只能接受這個typer,而如果你使用interface typem,你可以接受任何類型的List,你的代碼仍然可以工作。