在下面的代码片段运行后,您期望"zs"的值是多少?
Collection<Integer> xs = Arrays.asList(1,2,3);
int[] ys = {1};
List<Integer> zs = new ArrayList<>(xs);
zs.removeAll(Arrays.asList(ys));
Run Code Online (Sandbox Code Playgroud)
我原本期望一个包含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));
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?