为了账号安全,请及时绑定邮箱和手机立即绑定

ArrayList 的 toArray() 方法无法正常工作

ArrayList 的 toArray() 方法无法正常工作

繁星coding 2023-06-14 10:32:47
在查看 的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将值映射Integerint然后收集到 an int[]。喜欢,

int[] b = a.stream().mapToInt(Integer::intValue).toArray();
System.out.println(Arrays.toString(b));


查看完整回答
反对 回复 2023-06-14
?
森栏

TA贡献1810条经验 获得超5个赞

这一切都写在javadoc中:

Integer[] b = a.toArray(new Integer[0]);



查看完整回答
反对 回复 2023-06-14
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

看来你需要通过 new Integer[]

Integer[] arr = new Integer[a.size()]; 
arr = a.toArray(arr);


查看完整回答
反对 回复 2023-06-14
  • 3 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信