📜  java print 2d array row and column - Java (1)

📅  最后修改于: 2023-12-03 14:42:15.723000             🧑  作者: Mango

Java - 打印二维数组的行和列

在 Java 中,打印二维数组的行和列是一个常见的需求。在本文中,我们将介绍多种方法来实现这个目标。

方法一

可以使用嵌套的 for 循环遍历二维数组,然后打印每行和每列的元素。以下是实现该方法的代码:

int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

// 打印每行的元素
for (int i = 0; i < arr.length; i++) {
    System.out.print("Row " + i + ": ");
    for (int j = 0; j < arr[i].length; j++) {
        System.out.print(arr[i][j] + " ");
    }
    System.out.println();
}

// 打印每列的元素
for (int i = 0; i < arr[0].length; i++) {
    System.out.print("Column " + i + ": ");
    for (int j = 0; j < arr.length; j++) {
        System.out.print(arr[j][i] + " ");
    }
    System.out.println();
}

注释已经包含在代码中,以帮助您理解。该方法将打印以下内容:

Row 0: 1 2 3 
Row 1: 4 5 6 
Row 2: 7 8 9 

Column 0: 1 4 7 
Column 1: 2 5 8 
Column 2: 3 6 9 
方法二

可以使用 Java 8 引入的 stream API 来打印二维数组的行和列。以下是实现该方法的代码:

int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

// 打印每行的元素
Arrays.stream(arr).forEach(a -> {
    System.out.print("Row " + Arrays.asList(arr).indexOf(a) + ": ");
    Arrays.stream(a).forEach(e -> System.out.print(e + " "));
    System.out.println();
});

// 打印每列的元素
IntStream.range(0, arr[0].length).forEach(i -> {
    System.out.print("Column " + i + ": ");
    Arrays.stream(arr).forEach(a -> System.out.print(a[i] + " "));
    System.out.println();
});

与方法一类似,该方法也将打印以下内容:

Row 0: 1 2 3 
Row 1: 4 5 6 
Row 2: 7 8 9 

Column 0: 1 4 7 
Column 1: 2 5 8 
Column 2: 3 6 9 
方法三

可以使用 Java 8 引入的 StreamEx 库来打印二维数组的行和列。以下是实现该方法的代码:

int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};

// 打印每行的元素
IntStreamEx.range(arr.length).forEach(i -> {
    System.out.print("Row " + i + ": ");
    IntStreamEx.of(arr[i]).forEach(e -> System.out.print(e + " "));
    System.out.println();
});

// 打印每列的元素
IntStreamEx.range(arr[0].length).forEach(i -> {
    System.out.print("Column " + i + ": ");
    IntStreamEx.of(arr).mapToInt(a -> a[i]).forEach(e -> System.out.print(e + " "));
    System.out.println();
});

与前两种方法相同,该方法也将打印以下内容:

Row 0: 1 2 3 
Row 1: 4 5 6 
Row 2: 7 8 9 

Column 0: 1 4 7 
Column 1: 2 5 8 
Column 2: 3 6 9 
结论

以上是三种打印二维数组行列的方法。虽然这些方法都可以实现相同的目标,但适合不同的情况。您可以根据您的需求选择适合您的方法。