arrays.deeptostring是java中专用于递归打印多维数组的工具方法,支持int[][]、string[][][]、object[]混合嵌套等任意维度数组,能清晰展示嵌套结构并显式输出null,而arrays.tostring仅显示哈希码。

Arrays.deepToString 是 Java 中专门用于打印多维数组内容的工具方法,能清晰展示嵌套数组的结构,特别适合排查复杂数组(如二维、三维甚至不规则嵌套数组)的数据组织形式。
适用于哪些数组类型
它能正确处理:
- 基本类型数组的嵌套(如
int[][]、double[][][]) - 对象数组的嵌套(如
String[][]、List<integer>[][]</integer>) - 混合嵌套(如
Object[]中同时包含String、int[]和String[][]) - 空数组(
new int[0][0])和null元素(会显示为null)
与 toString 的关键区别
Arrays.toString() 只展开一层,对内部数组只显示哈希码(如 [[I@1b6d3586, [I@4554617c]),而 deepToString() 会递归遍历每一层:
int[][] arr = {{1, 2}, {3, 4, 5}};
System.out.println(Arrays.toString(arr)); // [[I@..., [I@...]
System.out.println(Arrays.deepToString(arr)); // [[1, 2], [3, 4, 5]]
排查时的实用技巧
调试中可结合日志或断点快速验证:
- 检查维度是否符合预期:观察方括号嵌套层数(
[...]是一维,[[...]]是二维,[[[...]]]是三维) - 识别不规则结构:比如
String[][]中某行长度不同,会直观显示为[["a", "b"], ["c"], ["d", "e", "f"]] - 定位 null 值:
deepToString明确输出null,便于发现未初始化的子数组或元素 - 避免重写 toString:无需为自定义类手动实现,对含对象数组的场景依然有效
注意事项
它只是“查看”工具,不修改数据;对超大数组可能产生冗长输出,建议配合条件打印(如只输出前几行);若数组含循环引用,会抛出 StackOverflowError(但普通业务数组极少出现)。











