多维数组
一、表格或矩阵中的数据可以表示为二维数组.例如,使用名为distances的二维数组就可以存储下面这个描述城市之间距离的表格。
北京 | 上海 | 广州 | 武汉 | 天津 | |
北京 | 0 | 1254 | 2158 | 1158 | 138 |
上海 | 1254 | 0 | 1478 | 839 | 1106 |
广州 | 2158 | 1478 | 0 | 1020 | 2145 |
武汉 | 1158 | 839 | 1020 | 0 | 1144 |
天津 | 138 | 1106 | 2145 | 1144 | 0 |
double[][] distances = {
{0,1254,2158,1158,138},
{1254,0,1478,839,1106},
{2158,1478,0,1020,2145},
{1158,839,1020,0,1144},
{138,1106,2154,1144,0}
}
二、声明二维数组变量并创建二维数组
1.静态初始化二维数组方式一
int[][] matrix = {{1,2,3},{4,5},{6,7,8}};
2.静态初始化二维数组方式二
int[][] matrix = new int[][]{{1,2,3},{4,5},{6,7,8}};
3. 动态初始化二维数组方式一:
int[][] list = new int[3][4];
4. 动态初始化二维数组方式二:
二维数组中的每一行本身就是一个数组,因此,各行的长度就可以不同。这样的数组称为锯齿数组
从图中可以看到,triangleArray[0].length=5, triangleArray[1].length=4,....triangleArray[4].length=1
如果事先不知道锯齿数组的值,但知道它们的长度,可以使用下面的语法创建锯齿数组:
int[][] triangleArray = new int[5][];
triangleArray[0] = new int[5];
triangleArray[1] = new int[4];
triangleArray[2] = new int[3] ;
triangleArray[3] = new int[2] ;
triangleArray[4] = new int[1];
注意:以下这种方式错误
int demo[][] = new int[][3];
案例:杨辉三角
import java.util.Arrays; import java.util.Scanner; public class YanghuiTriangle { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入杨辉三角的行数"); int line = input.nextInt(); input.close(); int[][] triangle = new int[line][]; //给每一行定义元素个数 for(int i = 0; i < triangle.length; i++) { triangle[i] = new int[i + 1]; }
for (int i = 0; i < triangle.length; i++) {
triangle[i][0] = triangle[i][i] = 1;
for (int j = 1; j < triangle[i].length - 1; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
printArray(triangle); } public static void printArray(int[][] list) { for(int i = 0; i < list.length; i++) { for(int j = 0; j < list[i].length; j++) { System.out.print(list[i][j] + "\t"); } System.out.println(); } } }
5.如何调用二维数组里的元素
int[][] matrix = new int[5][5];
二维数组通过元素的行和列的下标来访问。二维数组中使用两个下标,一个表示行,一个表示列。同一维数组一样,每个下标索引值都是int型的,从0开始。
如将10赋给行下标为2,列下标为1的特定元素,可以使用下面的语句:
matrix[2][1] = 10;
6.如何确定数组的长度
二维数组实际上一个数组,它的每个元素都是一个一维数组。确定数组的长度,直接用“数组名.length”即可。元素matrix[0],matrix[1],...,matrix[matrix.length - 1]也是数组,可以使用matrix[0].length,matrix[1].length,.....获取它们的长度
例如:x = new int[3][4],那么x[0],x[1],x[2]都是一维数组,每个数组都包含4个元素。如下图所示:
7.如何遍历二维数组
嵌套的for循环常用于处理二维数组:
for(int i = 0;i< list.length;i++){ for(int j = 0;j <list[i].length;j++){ System.out.print(list[i][j]+" "); } System.out.println(); }
二维数组的其它处理方式,包括作为参数传递参照一维数组
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!