【问题标题】:Print int Array with Stream using Arrays.asList method [duplicate]使用 Arrays.asList 方法使用 Stream 打印 int Array [重复]
【发布时间】:2018-09-11 14:57:16
【问题描述】:

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

【问题讨论】:

    标签: java arrays lambda java-8 stream


    【解决方案1】:
    Arrays.asList(array) -> a List<int[]>
    
    Arrays.asList(array).stream() -> Stream<int[]>
    

    因此int[] 中的Stream 中的每个元素,而不是int;所以你试图打印一个数组(Object);这不会像您预期的那样工作。

    在第二个例子中:

    Arrays.stream(array -> IntStream
    

    这样就可以了

    【讨论】:

    • 能否请您使用 aslist 编写正确的 awnser 来打印数组元素,因为我试图删除流,但我仍然得到对象的 toString 表示形式。
    • @zakzak Arrays.asList(array).stream().forEach(anArray -&gt; System.out.println(Arrays.toString(anArray)));
    • 或者只是System.out.println(Arrays.toString(array));
    猜你喜欢
    • 2016-09-12
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多