【问题标题】:Print out int[][] array using streams [duplicate]使用流打印出 int[][] 数组 [重复]
【发布时间】:2020-06-01 22:25:54
【问题描述】:

我有一个方法 rotateImage 返回一个 int[][] 数组,我无法理解如何显示数组的实际值而不仅仅是哈希码:

[I@548c4f57
[I@1218025c
[I@816f27d

我试过这样做:

Arrays.stream(rotateImage(matrix)).forEach(System.out::println);

但这仅返回哈希码,而不是实际数字本身。我还尝试以多种方式使用 to Arrays.toString() 方法,但总是出错。

【问题讨论】:

  • 试试Arrays.deepToString
  • Arrays.stream(rotateImage(matrix)).map(Arrays::toString).forEach(System.out::println);

标签: java arrays stream


【解决方案1】:

这是因为您访问的是地址而不是实际值。您可以简单地执行一个 lambda 函数并遍历每一行

Arrays.stream(rotateImage(matrix)).
         forEach(row -> {
             for(int i : row) {
                System.out.println(i);                 
             }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 2012-10-24
    相关资源
    最近更新 更多