多维数组的使用(三)
内存解析
二维数组本质上是元素类型是一维数组的一维数组。
int[][] arr = { {1}, {2,2}, {3,3,3}, {4,4,4,4}, {5,5,5,5,5} };
//1、声明二维数组,并确定行数和列数 int[][] arr = new int[4][5]; //2、确定元素的值 for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length; j++) { arr[i][j] = i + 1; } }
//1、声明一个二维数组,并且确定行数 //因为每一行的列数不同,这里无法直接确定列数 int[][] arr = new int[5][]; //2、确定每一行的列数 for(int i=0; i<arr.length; i++){ /* arr[0] 的列数是1 arr[1] 的列数是2 arr[2] 的列数是3 arr[3] 的列数是4 arr[4] 的列数是5 */ arr[i] = new int[i+1]; } //3、确定元素的值 for(int i=0; i<arr.length; i++){ for(int j=0; j<arr[i].length; j++){ arr[i][j] = i+1; } }
应用举例
案例1:获取arr数组中所有元素的和。
public static void sumArrays() { //定义不规则数组 int[][] arr = new int[][]{{3, 5, 8}, {12, 9}, {7, 0, 6, 4}}; //存放结果 int sum = 0; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { sum += arr[i][j]; } } System.out.println("数组和为 " + sum); }
案例2:使用二维数组打印一个 10 行杨辉三角。
提示:
- 第一行有 1 个元素, 第 n 行有 n 个元素
- 每一行的第一个元素和最后一个元素都是 1
- 从第三行开始, 对于非第一个元素和最后一个元素的元素。即:
yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];
//动态初始化 int[][] yangh = new int[10][]; for (int i = 0; i < yangh.length; i++) { yangh[i] = new int[i + 1]; //赋值 yangh[i][0] = yangh[i][i] = 1; for (int j = 1; j < yangh[i].length-1; j++) { yangh[i][j] = yangh[i - 1][j -1 ] + yangh[i - 1][j]; } } for (int i = 0; i < yangh.length; i++) { for (int j = 0; j < yangh[i].length; j++) { System.out.print(yangh[i][j] + "\t"); } System.out.println(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2022-04-11 Spark 广播变量&累加器
2020-04-11 数组模拟环形队列