You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中打印二维矩阵出现内存地址而非数组内容的问题咨询

解决二维数组打印内存地址的问题

问题原因

Java里的二维数组本质是数组的数组,直接调用System.out.println()或者Arrays.toString()时,只会打印每个一维子数组的内存地址(比如[I@4617c264),而不会遍历子数组里的元素。

解决方法

使用java.util.Arrays类提供的deepToString()方法,它能递归遍历多维数组的所有元素并格式化输出。

修改后的运行代码

import java.util.Arrays;

public class YourMainClass {
    public static void main(String[] args) {
        int[][] mat = {{45,101,87,12,41,0},{12,8,12,8,15,841},{-12,-1,-741,-1,0,74}};
        int[][] doubledMat = Array2DHelper2.doubleMat(mat);
        // 使用deepToString打印完整二维数组内容
        System.out.println(Arrays.deepToString(doubledMat));
    }
}

输出示例

[[90, 202, 174, 24, 82, 0], [24, 16, 24, 16, 30, 1682], [-24, -2, -1482, -2, 0, 148]]

额外说明

  • 必须导入java.util.Arrays包,否则无法调用deepToString()方法。
  • 你的doubleMat方法逻辑完全正确,无需修改,只需调整打印方式即可。

内容的提问来源于stack exchange,提问作者Ethan Do

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:08:16