1

在以下代码段运行后,您期望“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));

这里发生了什么?

4

1 回答 1

6

的类型Arrays.asList(int[])List<int[]>。因此,xs该列表中不包含任何元素。

于 2015-05-05T23:12:12.093 回答