在以下代码段运行后,您期望“zs”的值是多少?
Collection<Integer> xs = Arrays.asList(1,2,3);
int[] ys = {1};
List<Integer> zs = new ArrayList<>(xs);
zs.removeAll(Arrays.asList(ys));
我本来期望一个包含 2 和 3 的列表。但是,对于 Eclipse 4.5 M7 中的 JDK 1.8.0_25,它是一个包含 1、2、3 的列表。删除没有效果。但是,当我将“ys”指定为非原始数组时,我得到了预期的结果:
Collection<Integer> xs = Arrays.asList(1,2,3);
Integer[] ys = {1};
List<Integer> zs = new ArrayList<>(xs);
zs.removeAll(Arrays.asList(ys));
这里发生了什么?