本文介紹了如何在Java中將List<;Integer&>轉換為int[]?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我是Java新手。如何在Java中將List<Integer>
轉換為int[]
?
我很困惑,因為List.toArray()
實際上返回了一個Object[]
,它既不能轉換為Integer[]
也不能轉換為int[]
。
現在我正在使用循環來執行此操作:
int[] toIntArray(List<Integer> list) {
int[] ret = new int[list.size()];
for(int i = 0; i < ret.length; i++)
ret[i] = list.get(i);
return ret;
}
有沒有更好的方法?
這與問題類似
How can I convert int[] to Integer[] in Java?。
推薦答案
不幸的是,我不認為有更好的方法來做到這一點,因為Java處理基元類型、裝箱、數組和泛型的本質。特別是:
List<T>.toArray
不起作用,因為沒有從Integer
到int
的轉換
您不能將int
用作泛型的類型參數,因此必須是int
特定的方法(或使用反射來進行骯臟詭計的方法)。
我相信有一些庫為所有基元類型擁有這種方法的自動生成版本(即,每個類型都有一個復制的模板)。很難看,但恐怕就是這樣:(
即使Arrays
類在泛型到達Java之前就出現了,但如果它是今天引入的(假設您想使用基元數組),它仍然必須包括所有可怕的重載。
這篇關于如何在Java中將List<;Integer&>轉換為int[]?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,