在Java中是否还有其他C相似的方式来打印2D数组?

时间:2018-07-10 06:46:18

标签: java arrays multidimensional-array

我目前正在学习Java,当我参加“多维数组”课程时,我有些困惑。我想知道为什么嵌套循环在其终止counterVar < 2dArrayName[row].length处有。为什么我们需要2DArray旁边的参数[row]?

示例代码:

import java.util.Scanner;

public class Program {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    String [][] arr = new String [2][2];

        for(int row = 0; row < arr.length;row++) {
            for(int column = 0; column < arr[row].length; column++) {
                arr[row][column] = sc.nextLine();
             }
        }
    }
}

3 个答案:

答案 0 :(得分:2)

在Java中,这是有效的:

String[][] demo = { {"test1","test2","test3"}, {"test4","test5"}, {"test6"}};

有了这样的构造,您就可以成功执行

System.out.println(demo[0][2]);

但是

System.out.println(demo[1][2]);

将导致ArrayIndexOutOfBoundsException,因为第二行只有2个条目,而不是第一行的3个条目。

答案 1 :(得分:1)

Arrays.toString()与您的问题(用Java打印数组内容)松散相关,因此也应该知道。

https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html

示例(来自https://www.geeksforgeeks.org/arrays-tostring-in-java-with-examples/

[true, true, false, true]
[10, 20, 30]
[g, e, e, k, s]
[1.0, 2.0, 3.0, 4.0]

答案 2 :(得分:0)

猜想您有一个类型为int的数组:int arr[][] = new int[2][3];

在这种情况下,2表示数组数,3表示每个数组元素的计数。

在您的代码上,arr.length是数组的数量(在您的情况下,它是前2个),但是arr[row].length表示arr[row]的数组元素的数量(在您的情况下,它是是第二个2)。