有沒有辦法將ArrayList作爲參數傳遞給方法?這是我迄今爲止沒有工作:將ArrayList傳遞給方法?
int[] exampleMethod(ArrayList<int> exampleList) {
}
任何幫助,非常感謝!
有沒有辦法將ArrayList作爲參數傳遞給方法?這是我迄今爲止沒有工作:將ArrayList傳遞給方法?
int[] exampleMethod(ArrayList<int> exampleList) {
}
任何幫助,非常感謝!
Yss。
使用包裝類。
int[] exampleMethod(ArrayList<Integer> exampleList) {
}
使用包裝類:
int[] exampleMethod(ArrayList<int> exampleList) {
}
List<E>
不能把基本數據類型一樣int
,因此我們提供了與他們的包裝類型,如Integer
。您也可以通過接口類型而不是實現類型來提高可用性。
閱讀Oracle tutorials在這裏。
更換int
與Integer
那麼這將切切實實的工作:)
因此,這將是
int[] exampleMethod(ArrayList<Integer> exampleList) {
}
請記住,集合總是期待包裝類而不是基本數據類型。
int
是原始數據類型,Integer
是它的包裝類。
試試這個
int[] exampleMethod(ArrayList<Integer> exampleList) {
}
正如已經已經注意到,您必須使用包裝類
int[] foo(List<Integer> oArray)
{
}
int
爲基本類型,所以你不能在List
使用它。這也適用於其他基本類型,如char
,boolean
,float
等。在所有這些情況下,當您在需要對象的地方使用它們時,必須使用它們的類對應項(例如在Map
中)。
正如你在我的例子中看到的,你應該在你的方法中接受一個List<Integer>
,而不是ArrayList
。 ArrayList
是一個專門的類,所以當你將其限制到ArrayList
時,你只能接受這個typer,而如果你使用interface typem,你可以接受任何類型的List
,你的代碼仍然可以工作。
是的,這是正確的,是什麼問題? –
查看所有試圖回答重複問題而不是投票結束的人(尤其是那些擁有超過3k代表的人)。 –
我搜索了它,並找不到它,所以顯然值得有關於它的另一個問題,那麼不是嗎?有人可以很容易地用我的措辭而不是你的措辭來尋找它,這可以幫助他們。 –