java - 每个单独的行如何容纳不同数量的项目?
问题描述
这是一个锯齿状数组的程序(在 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
解决方案
此代码为每一行定义不同的列,第一次迭代将创建一列,然后是二、三和四,等等
for (int i=0; i<arr.length; i++)
for(int j=0; j<arr[i].length; j++)
arr[i][j] = count++;
, 并打印数组
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();
}
推荐阅读
- react-navigation - ResourceSavingSceneView:运行 react-scripts 时出现意外令牌 (33:11)
- java - 如何将 YAML 文件解析为 Java 类
- google-analytics - 跟踪用户使用谷歌分析观看视频流的时间指南
- java - 为什么 javac 命令在使用 --module-source-path 选项时需要源文件参数?
- android - 关闭另一个活动时如何逐步显示以前的活动?(当用户在照片上向下滑动时,类似于 Android 中的 Google 相册应用)
- c# - 如何在 C# 中使用 Attributes 来控制属性的序列化
- flutter - 将约束框的大小调整到其 maxHeight resp。最小高度
- out-of-memory - 具有 16G RAM 的 Minecraft 服务器上的内存不足错误
- java - 如何修复 Spring MVC 中的“400 - 错误请求”?
- spring-boot - 为什么我的 Heroku 部署的 spring-boot/angular/aws-rds 应用程序没有联系移动设备上的服务器?