《java概述课件07多维数组.ppt》由会员分享,可在线阅读,更多相关《java概述课件07多维数组.ppt(27页珍藏版)》请在第壹文秘上搜索。
1、1第7章 多维数组2引言 Chicago Boston New York Atlanta Miami Dallas Houston Distance Table(in miles)Chicago Boston New York Atlanta Miami Dallas Houston 0 983 787 714 1375 967 1087 983 0 214 1102 1763 1723 1842 787 214 0 888 1549 1548 1627 714 1102 888 0 661 781 810 1375 1763 1549 661 0 1426 1187 967 1723 154
2、8 781 1426 0 239 1087 1842 1627 810 1187 239 0 1723 1548 781 1426 0 239 到目前为止,我们已经用一维数组如何存储线性的元素集合到目前为止,我们已经用一维数组如何存储线性的元素集合。我们还可以用一个二维数组表示矩阵或表。例如,下面的表。我们还可以用一个二维数组表示矩阵或表。例如,下面的表格,描述了城市之间的距离可以用一个二维数组表示。格,描述了城市之间的距离可以用一个二维数组表示。3学习目标F给出使用的二维数组表示数据的例子(给出使用的二维数组表示数据的例子(7.1节)。节)。F声明二维数组变量,创建数组,以及使用行下标和列下
3、标访问声明二维数组变量,创建数组,以及使用行下标和列下标访问二维数组中的数组元素(二维数组中的数组元素(7.2节)。节)。F编程实现常用的二维数组的操作数(显示数组,对所有数求和编程实现常用的二维数组的操作数(显示数组,对所有数求和,找出最小元素和,找出最小元素和 最大元素,以及随意打乱数组)(最大元素,以及随意打乱数组)(7.3节)。节)。F给方法传递二维数组(给方法传递二维数组(7.4节)。节)。F使用二维数组编写多选题评分程序(使用二维数组编写多选题评分程序(7.5节)。节)。F使用二维数组解决距离最近的点对问题(使用二维数组解决距离最近的点对问题(7.6节)。节)。F使用二维数组检测一
4、种九宫格的解决方案(使用二维数组检测一种九宫格的解决方案(7.7节)。节)。F使用多维数组(使用多维数组(7.8节)。节)。4声明/创建二维数组/Declare array ref vardataType refVar;/Create array and assign its reference to variablerefVar=new dataType1010;/Combine declaration and creation in one statementdataType refVar=new dataType1010;/Alternative syntaxdataType refVa
5、r=new dataType1010;5声明二维数组变量并创建二维数组 int matrix=new int1010;或 int matrix=new int1010;matrix00=3;for(int i=0;i matrix.length;i+)for(int j=0;j matrixi.length;j+)matrixij=(int)(Math.random()*1000);double x;6二维数组的例子 0 1 2 3 4 0 7 0 1 2 3 4 1 2 3 4 0 1 2 3 4 matrix21=7;matrix=new int55;3 7 0 1 2 0 1 2 int
6、 array=1,2,3,4,5,6,7,8,9,10,11,12;1 2 3 4 5 6 8 9 10 11 12 array.length?4array0.length?3matrix.length?5matrix0.length?57声明,创建和初始化一个二维数组声明,创建和初始化一个二维数组 也可以使用数组初始化来声明,创建和初始化一个二维数组,如下:int array=new int43;array00=1;array01=2;array02=3;array10=4;array11=5;array12=6;array20=7;array21=8;array22=9;array30=1
7、0;array31=11;array32=12;int array=1,2,3,4,5,6,7,8,9,10,11,12;Same as8获取二维数组的长度 x x0 x1 x2 x00 x01 x02 x03 x10 x11 x12 x13 x20 x21 x22 x23 x.length is 3 x0.length is 4 x1.length is 4 x2.length is 4 int x=new int34;9获取二维数组的长度续int array=1,2,3,4,5,6,7,8,9,10,11,12;array.lengtharray0.lengtharray1.lengtha
8、rray2.lengtharray3.lengtharray4.length ArrayIndexOutOfBoundsException10锯齿数组 二维数组中的每一行本身就是一个数组,因此,各行长度就可以不同。这样的数组称为锯齿数组,例如:int matrix=1,2,3,4,5,2,3,4,5,3,4,5,4,5,5;matrix.length is 5matrix0.length is 5matrix1.length is 4matrix2.length is 3matrix3.length is 2matrix4.length is 111锯齿数组续 1 2 3 4 5 int tr
9、iangleArray=1,2,3,4,5,2,3,4,5,3,4,5,4,5,5;1 2 3 4 1 2 3 1 2 1 2 12处理二维数组看如下的例子:1.使用输入值初始化数组。2.使用随机值初始化数组。3.打印数组。4.求所有元素的和。5.对数组按列求和。6.哪一行的和最大。7.随机打乱。13使用输入值初始化数组java.util.Scanner input=new Scanner(System.in);System.out.println(Enter +matrix.length+rows and +matrix0.length+columns:);for(int row=0;row
10、 matrix.length;row+)for(int column=0;column matrixrow.length;column+)matrixrowcolumn=input.nextInt();14使用随机值初始化数组for(int row=0;row matrix.length;row+)for(int column=0;column matrixrow.length;column+)matrixrowcolumn=(int)(Math.random()*100);15打印数组for(int row=0;row matrix.length;row+)for(int column=0;
11、column matrixrow.length;column+)System.out.print(matrixrowcolumn+);System.out.println();16求所有元素的和int total=0;for(int row=0;row matrix.length;row+)for(int column=0;column matrixrow.length;column+)total+=matrixrowcolumn;17对数组按列求和for(int column=0;column matrix0.length;column+)int total=0;for(int row=0;row matrix.length;row+)total+=matrixrowcolumn;System.out.println(Sum for column +column+is +total);18随机打乱for(int i=0;i matrix.length;i+)for(int j=0;j=3的的n维数维数组。例如,下述语法声明一个三维数组变量组。例如,下述语法声明一个三维数组变量scores,创建一个数组并将它的引用赋值给创建一个数组并将它的引用赋值给scores;double scores=new double1052;