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

如何使用for-each循环正确在控制台输出Java二维数组?

如何用for-each循环正确输出Java多维数组?

你的代码出现问题有两个核心原因:

  • 内层for-each循环错误地遍历了整个二维数组array2,而非外层循环获取到的一维子数组
  • 打印时直接输出整个二维数组的默认toString结果,这会输出数组对象的内存地址(比如[[I@7d4991ad),而非数组中的元素

正确的for-each实现方式

要输出你期望的每行0 0格式,需要在内层循环遍历外层拿到的一维子数组,并逐个打印元素:

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[][] array2 = new int[2][2];
        
        // 嵌套for-each循环遍历二维数组
        for (int[] subArray : array2) {
            // 遍历每个一维子数组的元素
            for (int num : subArray) {
                // 打印元素,用空格分隔,不换行
                System.out.print(num + " ");
            }
            // 每行遍历结束后换行
            System.out.println();
        }
    }
}

输出结果

0 0 
0 0 

如果想去掉每行末尾的空格,可以稍作调整(比如用StringJoiner拼接元素),但上面的代码已能满足你的核心需求。

另外,若不需要手动遍历,也可以直接用Arrays.deepToString()一次性输出整个多维数组,但这不符合你要求的for-each循环方式:

System.out.println(Arrays.deepToString(array2));
// 输出:[[0, 0], [0, 0]]

内容的提问来源于stack exchange,提问作者Сonspicuous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:15:33