在查看 的ArrayList方法时,我看到了一个名为toArray(). 我使用以下代码尝试了此方法:ArrayList<Integer> a = new ArrayList<>();// Assigning random elements to the ArrayListint[] b = a.toArray();但是,这在编译器中显示了以下异常:Incompatible types.Required: int[]Found: java.lang.Object[]接下来我尝试的下一件事是将其向下转换为int[]ArrayList<Integer> a = new ArrayList<>();// Assigning random elements to the ArrayListint[] b = (int[]) a.toArray();这显示了另一个错误:Cannot cast java.lang.Object[] to int[]我尝试的最后一件事是将其改为Integer[],并将其向下转换为Integer[]ArrayList<Integer> a = new ArrayList<>();// Assigning random elements to the ArrayListInteger[] b = (Integer[]) a.toArray();这个编译了,但是我一运行它就产生了ClassCastException. 如何使用此toArray()方法而不会出错?
3 回答
www说
TA贡献1775条经验 获得超8个赞
List
只能包含引用类型(如Integer
)。Integer
是包装器类型。要将 a 转换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贡献1828条经验 获得超13个赞
看来你需要通过 new Integer[]
。
Integer[] arr = new Integer[a.size()]; arr = a.toArray(arr);
添加回答
举报
0/150
提交
取消