如何用foreach循环打印最简单的二维数组?

时间:2018-04-21 20:02:03

标签: java arrays loops foreach 2d

我想知道打印2D数组最简单的方法是什么? 我知道我们可以像下面的代码一样打印1D数组。

int[ ] numbers = {2, 3, 5, 7};    
for (int print: numbers) {
   System.out.println(print); 
}

我尝试打印下面的代码,当然它不起作用。

int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} }; 
for (int print: numbers) {
       System.out.println(print); 
    }

我知道我可以使用嵌套循环进行打印,如下面的代码,但我想知道是否可以像1D数组一样使用foreach循环。谢谢

 int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} }; 
    for (int i = 0; i < numbers.length; i++) {
            for (int j = 0; j < numbers[i].length; j++) {
                System.out.print(numbers[i][j] + " ");
            }
            System.out.println();
        }
}

3 个答案:

答案 0 :(得分:2)

在二维数组中,第一个循环中的每个元素都是一维数组,在第二个循环中,每个元素本身就是一个数字:

int[][] array2d = {{1, 2, 3}, {4, 5, 6}};
for (int[] array : array2d) {
    for (int element : array) {
        System.out.print(element + " ");
    }
    System.out.println();
}

实际上,使用Arrays::toString库方法有更好的方法:

int[][] numbers = {{1, 2, 3}, {4, 5, 6}};
for (int[] array : numbers) {
    System.out.println(Arrays.toString(array));
}

答案 1 :(得分:1)

使用foreach循环打印2D数组最简单的方法:

示例:

 public class Print2DArr {


            public static void main(String[] args) {
                // TODO Auto-generated method stub

                         int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} }; 
                              for (int[] arr:  numbers) {
                              for (int num :  arr ) {
                              System.out.print(num +  " ");
                    }
                    System.out.println();
                }
             }

          }

输出:

1 2 3 
4 5 6 

但是,libs确实为此提供了方法deepToString,因此这也可能适合您的目的:

public class Print2DArr {


    public static void main(String[] args) {
        // TODO Auto-generated method stub

                 int[ ][ ] numbers= { {1, 2, 3}, {4, 5, 6} }; 
                   System.out.println(Arrays.deepToString(numbers));

}

输出:

[[1, 2, 3], [4, 5, 6]]

答案 2 :(得分:0)

您也可以使用Stream.of()

Stream.of(new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}).forEach(x -> {
        System.out.println(Arrays.toString(x));
    });
Output: [1, 2, 3]
        [4, 5, 6]
        [7, 8, 9]

但是我认为Arrays.deepToString()是更好的方法。

System.out.println(
        Arrays.deepToString(
            new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}
        ));
Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]