我目前正在学习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();
}
}
}
}
答案 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)。