【问题标题】:I@49d67b41 prints when trying to print a 2d array [duplicate]I@49d67b41 在尝试打印二维数组时打印 [重复]
【发布时间】:2014-05-29 00:41:46
【问题描述】:

这是我遇到的一个不寻常的问题:我创建了一个 3X3 维度的 2d int 数组,没有参数,当我尝试在屏幕上打印它时,它会显示如下内容:[[I@49d67b41.有什么建议吗?

public static void main (String[]  args) {
    System.out.println(test2());
}

static int [][] test2 () {
    int [][] l = new int[3][3];
    return l;
}

【问题讨论】:

  • 你认为它应该打印什么以及为什么?

标签: java


【解决方案1】:

使用

System.out.println(Arrays.deepToString(test2));

【讨论】:

  • 不。在这种特定情况下,您应该使用Arrays.deepToString(test2),因为它是一个二维数组。否则它将为每个子数组打印相同的可怕字符串:)
  • +1 表示正确。比我的回答好。
【解决方案2】:

int[][]Object 类型的子类。正在调用默认的 toString() 方法,您将看到对象的十六进制代码。您需要实现自己的方法来打印出int[][] 类型。

示例

for(int[] values : test2()) {
    for(int value : values) {
         System.out.print(int + " ");
    }
    System.out.println();
}

【讨论】:

    猜你喜欢
    • 2018-10-24
    • 2015-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-12
    • 2015-02-03
    相关资源
    最近更新 更多