使用Arrays.asList方法使用Stream打印int Array

时间:2018-09-11 14:57:17

标签: java arrays lambda java-8 stream

我正在学习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

1 个答案:

答案 0 :(得分:3)

Arrays.asList(array) -> a List<int[]>

Arrays.asList(array).stream() -> Stream<int[]>

因此int[]中的流中的每个元素,而不是int中的元素;因此,您尝试打印一个数组(Object);这将无法正常工作。

在第二个示例中:

Arrays.stream(array -> IntStream

这是可行的