java二位数组基础入门.docx
- 文档编号:25973826
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:14
- 大小:151.33KB
java二位数组基础入门.docx
《java二位数组基础入门.docx》由会员分享,可在线阅读,更多相关《java二位数组基础入门.docx(14页珍藏版)》请在冰豆网上搜索。
java二位数组基础入门
1二维数组
/*
二维数组:
就是元素为一维数组的一个数组。
格式1:
数据类型[][]数组名=new数据类型[m][n];
m:
表示这个二维数组有多少个一维数组。
n:
表示每一个一维数组的元素有多少个。
注意:
A:
以下格式也可以表示二维数组
a:
数据类型数组名[][]=new数据类型[m][n];
b:
数据类型[]数组名[]=new数据类型[m][n];
B:
注意下面定义的区别
intx;
inty;
intx,y;
int[]x;
int[]y[];
int[]x,y[];
*/
classArray2Demo{
publicstaticvoidmain(String[]args){
//定义一个二维数组
int[][]arr=newint[3][2];
//定义了一个二维数组arr
//这个二维数组有3个一维数组的元素
//每一个一维数组有2个元素
//输出二维数组名称
System.out.println(arr);//地址值[[I@175078b
//输出二维数组的第一个元素一维数组的名称
System.out.println(arr[0]);//地址值[I@42552c
System.out.println(arr[1]);//地址值[I@e5bbd6
System.out.println(arr[2]);//地址值[I@8ee016
//输出二维数组的元素
System.out.println(arr[0][0]);//0
System.out.println(arr[0][1]);//0
}
}
2二维数组格式
/*
格式2:
数据类型[][]数组名=new数据类型[m][];
m:
表示这个二维数组有多少个一维数组。
列数没有给出,可以动态的给。
这一次是一个变化的列数。
*/
classArray2Demo2{
publicstaticvoidmain(String[]args){
//定义数组
int[][]arr=newint[3][];
System.out.println(arr);//[[I@175078b
System.out.println(arr[0]);//null
System.out.println(arr[1]);//null
System.out.println(arr[2]);//null
//动态的为每一个一维数组分配空间
arr[0]=newint[2];
arr[1]=newint[3];
arr[2]=newint[1];
System.out.println(arr[0]);//[I@42552c
System.out.println(arr[1]);//[I@e5bbd6
System.out.println(arr[2]);//[I@8ee016
System.out.println(arr[0][0]);//0
System.out.println(arr[0][1]);//0
//ArrayIndexOutOfBoundsException
//System.out.println(arr[0][2]);//错误
arr[1][0]=100;
arr[1][2]=200;
}
}
3二维数组格式3
/*
格式3:
基本格式:
数据类型[][]数组名=new数据类型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};
简化版格式:
数据类型[][]数组名={{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};
举例:
int[][]arr={{1,2,3},{4,5,6},{7,8,9}};
int[][]arr={{1,2,3},{4,5},{6}};
*/
classArray2Demo3{
publicstaticvoidmain(String[]args){
//定义数组
int[][]arr={{1,2,3},{4,5},{6}};
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[0][0]);//1
System.out.println(arr[1][0]);//4
System.out.println(arr[2][0]);//6
System.out.println(arr[0][1]);//2
System.out.println(arr[1][1]);//5
//越界
System.out.println(arr[2][1]);//错误
}
}
4二维数组的遍历
/*
需求:
二维数组遍历
外循环控制的是二维数组的长度,其实就是一维数组的个数。
内循环控制的是一维数组的长度。
*/
classArray2Test{
publicstaticvoidmain(String[]args){
//定义一个二维数组
int[][]arr={{1,2,3},{4,5,6},{7,8,9}};
//请问谁代表{1,2,3}
//arr[0]就是第一个数组
//arr[0]={1,2,3};
for(intx=0;x System.out.println(arr[0][x]); } System.out.println("--------------"); for(intx=0;x System.out.println(arr[1][x]); } System.out.println("--------------"); for(intx=0;x System.out.println(arr[2][x]); } System.out.println("--------------"); //用循环改进 for(intx=0;x<3;x++){ for(inty=0;y System.out.print(arr[x][y]+""); } System.out.println(); } System.out.println("--------------"); //这个时候,注意了,3是我们根据上面的代码得出来的 //但是,它不能针对任何的数组都可以这样 //所以,我们应该想办法改进 //其实,外面的这个循环的长度就是二维数组的长度 for(intx=0;x for(inty=0;y System.out.print(arr[x][y]+""); } System.out.println(); } System.out.println("--------------"); //用方法改进 //调用方法 printArray2(arr); System.out.println("--------------"); //我们再来一个列数是变化的 int[][]arr2={{1,2,3},{4,5},{6}}; printArray2(arr2); } /* 需求: 遍历二维数组 两个明确: 返回值类型: void 参数列表: int[][]arr */ publicstaticvoidprintArray2(int[][]arr){ for(intx=0;x for(inty=0;y System.out.print(arr[x][y]+""); } System.out.println(); } } } 5求公司销售额 /* 公司年销售额求和 某公司按照季度和月份统计的数据如下: 单位(万元) 第一季度: 22,66,44 第二季度: 77,33,88 第三季度: 25,45,65 第四季度: 11,66,99 分析: A: 把题目的数据用二维数组来表示 int[][]arr={{22,66,44},{77,33,88},{25,45,65},{11,66,99}}; B: 如何求和呢? 求和其实就是获取到每一个元素,然后累加即可。 C: 定义一个求和变量sum,初始化值是0。 D: 通过遍历就可以得到每一个二维数组的元素。 E: 把元素累加即可。 F: 最后输出sum,就是结果。 */ classArray2Test2{ publicstaticvoidmain(String[]args){ //把题目的数据用二维数组来表示 int[][]arr={{22,66,44},{77,33,88},{25,45,65},{11,66,99}}; //定义一个求和变量sum,初始化值是0。 intsum=0; //通过遍历就可以得到每一个二维数组的元素。 for(intx=0;x for(inty=0;y //把元素累加即可。 sum+=arr[x][y]; } } //最后输出sum,就是结果。 System.out.println("一年的销售额为: "+sum+"万元"); } } 6打印杨辉三角形 /* 需求: 打印杨辉三角形(行数可以键盘录入) 1 11 121 1331 14641 15101051 分析: 看这种图像的规律 A: 任何一行的第一列和最后一列都是1 B: 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 步骤: A: 首先定义一个二维数组。 行数如果是n,我们把列数也先定义为n。 这个n的数据来自于键盘录入。 B: 给这个二维数组任何一行的第一列和最后一列赋值为1 C: 按照规律给其他元素赋值 从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 D: 遍历这个二维数组。 */ importjava.util.Scanner; classArray2Test3{ publicstaticvoidmain(String[]args){ //创建键盘录入对象 Scannersc=newScanner(System.in); //这个n的数据来自于键盘录入。 System.out.println("请输入一个数据: "); intn=sc.nextInt(); //定义二维数组 int[][]arr=newint[n][n]; //给这个二维数组任何一行的第一列和最后一列赋值为1 for(intx=0;x arr[x][0]=1;//任何一行第1列 arr[x][x]=1;//任何一行的最后1列 } //按照规律给其他元素赋值 //从第三行开始,每一个数据是它上一行的前一列和它上一行的本列之和。 for(intx=2;x //这里如果y<=x是有个小问题的,就是最后一列的问题 //所以这里要减去1 //并且y也应该从1开始,因为第一列也是有值了 for(inty=1;y<=x-1;y++){ //每一个数据是它上一行的前一列和它上一行的本列之和。 arr[x][y]=arr[x-1][y-1]+arr[x-1][y]; } } //遍历这个二维数组。 /* for(intx=0;x for(inty=0;y System.out.print(arr[x][y]+"\t"); } System.out.println(); } */ //这个时候,要注意了,内循环的变化必须和曾经讲过的九九乘法表类似 for(intx=0;x for(inty=0;y<=x;y++){ System.out.print(arr[x][y]+"\t"); } System.out.println(); } } } 7二维数组格式1的内存 二维数组格式2的内存 二维数组格式3的内存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 数组 基础 入门