考虑以下代码:
int[] tcc = {1,2,3};
ArrayList<Integer> tc = Arrays.asList(tcc);
对于上述情况,Java抱怨它无法从List<int[]>
转换为ArrayList<Integer>
。
这有什么问题?
为什么是List<int[]>
而不是List<int>
?
答案 0 :(得分:3)
ArrayList只能保存对象而不是诸如整数之类的对象,而且因为int!= Integer,你不能做你正在尝试用基元数组做的事情,就这么简单。这将适用于整数数组。
答案 1 :(得分:1)
这将有效:
ArrayList tc = new ArrayList(Arrays.asList(1,2,3));
答案 2 :(得分:1)
你可以将它作为:
List<int[]> tc = Arrays.asList(tcc);
Arrays.asList返回列表,而不是ArrayList。由于Arrays.asList是varargs函数,因此它认为tcc
是更大数组的一个元素。
如果您只想要一个整数列表,则必须将其重写为SB的答案中提到的Hovercraft Of Eel:
List<Integer> tc = Arrays.asList(1, 2, 3);
或者,如果您使tcc
成为Integer[]
,您仍然可以通过明确要求List
整数来提供类型参数,从而将您的数组用作以下代码段中的参数这与传递的数组一致:
Integer[] tcc = {1,2,3};
List<Integer> tc = Arrays.<Integer>asList(tcc);