《java概述课件07多维数组.ppt》由会员分享,可在线阅读,更多相关《java概述课件07多维数组.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1第7章 多维数组2引言到目前为止,我们已经用一维数组如何存储线性的元素集合。到目前为止,我们已经用一维数组如何存储线性的元素集合。我们还可以用一个二维数组表示矩阵或表。例如,下面的表格,我们还可以用一个二维数组表示矩阵或表。例如,下面的表格,描述了城市之间的距离可以用一个二维数组表示。描述了城市之间的距离可以用一个二维数组表示。3学习目标F给出使用的二维数组表示数据的例子(给出使用的二维数组表示数据的例子(7.1节)。节)。F声明二维数组变量,创建数组,以及使用行下标和列下标访问声明二维数组变量,创建数组,以及使用行下标和列下标访问二维数组中的数组元素(二维数组中的数组元素(7.2节)。节)
2、。F编程实现常用的二维数组的操作数(显示数组,对所有数求和,编程实现常用的二维数组的操作数(显示数组,对所有数求和,找出最小元素和找出最小元素和最大元素,以及随意打乱数组)(最大元素,以及随意打乱数组)(7.3节)。节)。F给方法传递二维数组(给方法传递二维数组(7.4节)。节)。F使用二维数组编写多选题评分程序(使用二维数组编写多选题评分程序(7.5节)。节)。F使用二维数组解决距离最近的点对问题(使用二维数组解决距离最近的点对问题(7.6节)。节)。F使用二维数组检测一种九宫格的解决方案(使用二维数组检测一种九宫格的解决方案(7.7节)。节)。F使用多维数组(使用多维数组(7.8节)。节)
3、。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 refVar=new dataType1010;5声明二维数组变量并创建二维数组 int matrix=new int1010;或
4、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二维数组的例子array.length?4array0.length?3matrix.length?5matrix0.length?57声明,创建和初始化一个二维数组声明,创建和初始化一个二维数组 也可以使用数组初始化来声明,创建和初始化一个二维数组,如下:int array=new int43;array00=1
5、;array01=2;array02=3;array10=4;array11=5;array12=6;array20=7;array21=8;array22=9;array30=10;array31=11;array32=12;int array=1,2,3,4,5,6,7,8,9,10,11,12;Same as8获取二维数组的长度int x=new int34;9获取二维数组的长度续int array=1,2,3,4,5,6,7,8,9,10,11,12;array.lengtharray0.lengtharray1.lengtharray2.lengtharray3.lengtharra
6、y4.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锯齿数组续12处理二维数组看如下的例子:1.使用输入值初始化数组。2.使用随机值初始化数组。3.打印数
7、组。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 matrix.length;row+)for(int column=0;column matrixrow.length;column+)matrixrowcolumn=input.nextInt();14使用随机值初始
8、化数组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;column matrixrow.length;column+)System.out.print(matrixrowcolumn+);System.out.println();16求所有元素的和int total=0;f
9、or(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;doublescores=newdouble1052;
限制150内