前言
在JavaSE基础语法(Ⅲ)中,我们提到了数组的概念,并且详细的讲解了一维数组,它的声明,创建,以及访问等等。这篇文章,我们对一维数组进行扩展,上升到二维数组进行讲解,内容与一维数组大同小异,我们可以通过类比学习,掌握本章的知识内容。
1.二维数组
1.1 什么是二维数组?
学习了数组我们知道,数组就是相同数据类型元素的集合,就相当一个容器,里面存放了数据类型相同的各种数值,这样的一个容器就叫做数组。那么其中的元素,只是单个数值,这是一维数组。要是其中的元素是一个一维数组的话,这就是二维数组。
如下:
//一维数组
int[] a={1,2,3};
//二维数组
int[][] b={{1,2,3},{1,2,3},{1,2,3}};
1.2 二维数组的声明
由一维数组扩展,二维数组同样有两种声明方式:
int[][] a;
int b[][];//不建议
1.3 二维数组的创建
二维数组的创建有两种:静态创建和动态创建。
静态创建:
//int[][] c=new int[①][②];
//①处填的应是二维数组的长度,②处为里面每一个一维数组的长度
int[][] c=new int[3][2];
//输出结果为:{{0,0},{0,0},{0,0}};
int[][] b={{1,2,3},{1,2,3},{1,2,3}};
int[][] d=new int[][]{{1,2,3},{1,2,3},{1,2,3}};
动态创建:
int[][] f=new int[3][];//只创建一个二维数组,它里面的以为数组未创建为null
//输出结果为:{null,null,null}
//对每一个一维数组进行创建
int[] f1=new int[3];
int[] f2=new int[4];
int[] f3=new int[5];
f[0]=f1;
f[1]=f2;
f[2]=f3;
//输出结果为:{{0,0,0},{0,0,0,0},{0,0,0,0,0}}
//也可通过for循环进行遍历创建
1.4 二维数组的访问与迭代
在数组的访问中,我们提到了一个很关键的概念,就是索引,数组中每个空间都有一个下标,这就是索引。索引一般都为整数,从0开始,数组长度-1结束。
//一维数组的索引
// 0 1 2 3 4
int[] a={1,2,3,4,5}
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;
//二维数组的索引
// 0 1 2
// 0 1 2 0 1 2 0 1 2
int[][] b={{1,2,3},{1,2,3},{1,2,3}};
b[0][0]=1;
b[0][1]=2;
b[0][2]=3;
b[1][0]=1;
//第一个中括号里为二维数组的索引,第二个中括号里为二维数组中一维数组的索引
1.5 二维数组的输出
我们学习到一维数组的输出,可以直接使用方法:
int[] a=new int[5];
System.out.println(Arrays.toString(a));
来进行输出。但是二维数组的输出是不能使用该方法的,我们只能通过for循环遍历来输出。
int[][] c=new int[4][3];
//输出二维数组
for(int i=0;i< c.length;i++){
for(int j=0;j<c[i].length;j++){
System.out.print(c[i][j]+" ");
}
System.out.println();
}