在查看 的ArrayList方法時(shí),我看到了一個名為toArray(). 我使用以下代碼嘗試了此方法:ArrayList<Integer> a = new ArrayList<>();// Assigning random elements to the ArrayListint[] b = a.toArray();但是,這在編譯器中顯示了以下異常:Incompatible types.Required: int[]Found: java.lang.Object[]接下來我嘗試的下一件事是將其向下轉(zhuǎn)換為int[]ArrayList<Integer> a = new ArrayList<>();// Assigning random elements to the ArrayListint[] b = (int[]) a.toArray();這顯示了另一個錯誤:Cannot cast java.lang.Object[] to int[]我嘗試的最后一件事是將其改為Integer[],并將其向下轉(zhuǎn)換為Integer[]ArrayList<Integer> a = new ArrayList<>();// Assigning random elements to the ArrayListInteger[] b = (Integer[]) a.toArray();這個編譯了,但是我一運(yùn)行它就產(chǎn)生了ClassCastException. 如何使用此toArray()方法而不會出錯?
3 回答

www說
TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個贊
List
只能包含引用類型(如Integer
)。Integer
是包裝器類型。要將 a 轉(zhuǎn)換List<Integer>
為 an int[]
,可以選擇使用 aStream
將值映射Integer
到int
然后收集到 an int[]
。喜歡,
int[] b = a.stream().mapToInt(Integer::intValue).toArray(); System.out.println(Arrays.toString(b));

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個贊
看來你需要通過 new?Integer[]
。
Integer[]?arr?=?new?Integer[a.size()];? arr?=?a.toArray(arr);
添加回答
舉報(bào)
0/150
提交
取消