List<Integer> P = new ArrayList(Arrays.asList(p)); // Copies array p into Arraylist P
P.sort(null);
List<Integer> kk = new ArrayList();
kk.set(0, P.get(0)+k); //Exception generated on this line
我不知道为什么我无法这样设置。有人可以帮我这个吗? 感谢。
答案 0 :(得分:3)
如果p
是基本数组int[]
,Arrays.asList(p)
将返回其单个元素为int[]
的List。这可以解释为什么P.get(0)
无法转换为整数。
将p
更改为Integer[]
,Arrays.asList()
会生成您想要的列表。
它还允许您更改此行:
List<Integer> P = new ArrayList(Arrays.asList(p));
到
List<Integer> P = Arrays.asList(p);
您应该避免将原始类型分配给泛型类型。这样,当您将错误类型的List分配给P
(更容易查找和修复)时,您将收到编译错误而不是运行时错误。