为什么对int数组的去重计数会返回一个不同于对Integer数组计数的结果呢?我期望两者都应该是3。
int[] numbers1 = { 1, 2, 3 };
System.out.println("numbers1: " + Arrays.toString(numbers1));
System.out.println("distinct numbers1 count: " + Stream.of(numbers1).distinct().count());
Integer[] numbers2 = { 1, 2, 3 };
System.out.println("numbers2: " + Arrays.toString(numbers2));
System.out.println("distinct numbers2 count: " + Stream.of(numbers2).distinct().count());
结果
numbers1: [1, 2, 3]
distinct numbers1 count: 1
numbers2: [1, 2, 3]
distinct numbers2 count: 3
Arrays.stream
来遍历现有的数组。这样,您就不必再考虑它了。Stream
类中的工厂方法适用于 varargs 用例,即当您使用Stream.of(a)
、Stream.of(a, b)
或Stream.of(a, b, c)
等时,您也不需要考虑是否存在这些调用的专门版本... - Holger