如何让每一行容纳不同数量的项目?

这是一个Jagged Array(在Java中)的程序。你能不能简单地解释一下每一行?我不明白这个程序是如何工作的。

    int r = 5; 
    int arr[][] = new int[r][]; 
    for (int i=0; i<arr.length; i++) 
        arr[i] = new int[i+1]; 
    int count = 0; 
    for (int i=0; i<arr.length; i++) 
        for(int j=0; j<arr[i].length; j++) 
            arr[i][j] = count++; 
    System.out.println("Contents of 2D Jagged Array"); 
    for (int i=0; i<arr.length; i++) 
    { 
        for (int j=0; j<arr[i].length; j++) 
            System.out.print(arr[i][j] + " "); 
        System.out.println();


*OUTPUT*:
0 
1 2 
3 4 5 
6 7 8 9 
10 11 12 13 14 

解决方案:

让我们从下面两行开始。

int r = 5; 
int arr[][] = new int[r][];

第二行声明一个二维数组,用于 int 值。Java中的二维数组是一个数组。你可以想到一个5行的表格,其中行的长度还没有声明。

接下来的两行。

for (int i=0; i<arr.length; i++) 
    arr[i] = new int[i+1];

你正在用这个循环来声明每行的长度。第一行(即 arr[0])已经被分配了一个长度为 0 + 1 = 1. 第二行(即 arr[1])的长度为 1 + 1 = 2 以此类推。

下四行。

int count = 0; 
for (int i=0; i<arr.length; i++) 
    for(int j=0; j<arr[i].length; j++) 
        arr[i][j] = count++;

利用这个嵌套循环,你将填满这个表格的单元格,例如:

arr[0][0] = 0
arr[1][0] = 1
arr[1][1] = 2
arr[2][0] = 3
arr[2][1] = 4
arr[2][2] = 5
and so on...

最后是

for (int i=0; i<arr.length; i++) { 
    for (int j=0; j<arr[i].length; j++) {
        System.out.print(arr[i][j] + " "); 
    }
    System.out.println();
}

使用这个嵌套循环,你可以打印表格中每个单元格的值。请注意,每个单元格的值都被打印在同一行,使用了 System.out.print 而换行符是用 System.out.println() 一旦某行的值被打印出来。

enter image description here

给TA打赏
共{{data.count}}人
人已打赏
未分类

哪些常用的用户界面存在每行超过5072字符的提交信息?[已关闭]

2022-9-9 9:10:21

未分类

访问键值的嵌套字典,Python

2022-9-9 9:21:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索