所以我意识到主要的区别是一个可以容纳不同大小的行或列,而另一个具有相同的大小。还有其他差异吗? 另外,我将如何在代码上实现每个?
如果已经提出这个问题,请不要犹豫,关闭此链接并将我链接到问题。
答案 0 :(得分:1)
int[][] rectangular = new int[10][10];
int[][] jagged = new int[10][];
for(int i = 0;i < 10; i++)
jagged[i] = new int[i+1];
第一个创建一个10x10矩形数组,第二个创建一个锯齿状数组,第二个维度从1到9个元素。
没有重要的差异,但Java支持与其他语言不同的锯齿状数组。
答案 1 :(得分:-1)
这取决于您使用它的目的。如果您正在尝试像棋盘一样实现2D网格,那么您需要一个矩形阵列。如果你试图为每一行实现一个类似文件的系统,每一行都是一个单词数组,那么就会出现锯齿状。
矩形棋盘:
int[][] chessboard = new int[8][8];
锯齿状文件表示(10行):
BufferedReader reader = new BufferedReader(new FileReader("file"));
String[][] file = new String[10][];
for(int i = 0; i < 10; i++)
file[i] = reader.readLine().split();