![](/img/trans.png)
[英]java.lang.ClassCastException: java.lang.Integer cannot be cast
[英]Converting primitive array of int into ArrayList in Java: "java.lang.ClassCastException: [I cannot be cast to java.lang.Integer"
我想知道如何将原始整数数组转换为整数列表?
没有编译错误:
int[] nums = {0, 1};
List<Integer> list = new ArrayList(Arrays.asList(nums));
list.get(0);
但是这个:
int[] nums = {0, 1};
List<Integer> list = new ArrayList(Arrays.asList(nums));
int a = list.get(0);
失败:
java.lang.ClassCastException: class [I cannot be cast to class java.lang.Integer ([I and java.lang.Integer are in module java.base of loader 'bootstrap')
在 Java 8 中:
List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toCollection(ArrayList::new));
注意:您可能需要:
import java.util.stream.Collectors;
使用 for 循环:
List<Integer> list = new ArrayList();
for(int n : nums) {
list.add(n);
}
将原始数组声明为Ingeger[]
而不是int[]
:
Integer[] nums = {0, 1};
代码Arrays.asList(nums)
不会转换为具有 2 个值的ArrayList
,即。 1 和 2。它只有一个值, int[] { 1, 2 }
。 为了创建正确的ArrayList
,您应该使用
List<Integer> list = Arrays.stream(nums).boxed().collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.