我正在学习Stream,并且尝试使用在Arrays类中找到的asList方法打印一个int Array,很不幸,我得到了错误的结果。
有人可以向我解释为什么我得到这个错误的结果。
public class array {
public static void main(String[] args) {
/*my way*/
int [] array = new int[]{1,2,3,7,1};
Arrays.asList(array).stream().forEach(System.out::println);
System.out.println();
/*the good way*/
Arrays.stream(array).forEach(System.out::print);
}
}
结果:
[I @ 3e3abc88
12371
答案 0 :(得分:3)
Arrays.asList(array) -> a List<int[]>
Arrays.asList(array).stream() -> Stream<int[]>
因此int[]
中的流中的每个元素,而不是int
中的元素;因此,您尝试打印一个数组(Object
);这将无法正常工作。
在第二个示例中:
Arrays.stream(array -> IntStream
这是可行的