您的位置:首页 > 编程语言 > Java开发

Java学习笔记35. Java中的二维数组

2018-03-01 20:49 281 查看
有时候,一维数组难以满足程序的需求,就需要使用多维数组。而二维数组是使用最多的多维数组。
二维数组的声明和初始化数组类型 数组名[][]; //声明二维数组
数组名 = new 数组类型[4][5]; //初始化一个二维数组编程举例:public class doubleDimensionalArray{
public static void main(String[] args){
String[][] s; //定义一个2维数组
s = new String[2][2]; //初始化这个2维数组
}
}二维数组的赋值
要给二维数组赋值,一种方法是在声明的时候赋值,如:public class fuzhi{
public static void main(String[] args){
int a[][] = {{1,2,3},{4,5,6},{7,8,9}};
}
}
当然,先初始化后赋值也是可以的,比如这样:
int a[][] = new int[3][3];
a[0][0] = 5;
需要注意的是,Java中的二位数组,每一行的元素数量可以不同。比如第一行有3个元素,第二行有4个元素,第三行有2个元素。这样是可以的。
二维数组的遍历输出
要遍历二维数组,就要用到两个嵌套的循环。二维数组的实质是:一维数组的数组。
所以,二维数组包含的一维数组个数是:a.length
而相应的一维数组包含的元素的个数是a[i].length, 编写遍历程序如下:public class bianli{
public static void main(String[] args){
int a[][] = {{1,2,3},{4,5,6}}; //声明二维数组并赋值
for(int i=0;i<a.length;i++){    //第一层循环遍历
for(int j=0;j<a[i].length;j++){    //第二层循环遍历
System.out.println("a["+i+"]["+j+"]"+"="+a[i][j]); //遍历输出
}
}
}
}
除了用for循环进行遍历,还可以for-each循环进行遍历,编写程序如下:public class forEach{
public static void main(String[] args){
char[][] a = {{'a','b'},{'c','d'}};
for(char[] x1:a){        //x1在这里代表的是一维数组的数组
for(char x2:x1){    //x2在这里代表的是x1里的一维数组
System.out.println(x2); //直接遍历一维数组x2
}
}
}
}
遍历多维数组
学习了二维数组,对于更多维的数组,其遍历方法也是类似的,比如下面编程实现3维数组的遍历:public class douwei{
public static void main(String[] args){
int i,j,k,sum=0;
int a[][][] = {{{5,1,2},{6,7,3}},{{9,4,8},{8,3,9}}};
for(i=0;i<a.length;i++)
for(j=0;j<a[i].length;j++)
for(k=0;k<a[i][j].length;k++){
System.out.println(a[i][j][k]);
sum += a[i][j][k];
}
System.out.println();
}
}同样,也可以使用for-each循环,实现3维数组的遍历:
public class foreachduowei{
public static void main(String[] args){
int sum=0;
int a[][][] = {{{5,1,2},{6,7,3}},{{9,4,8},{8,3,9}}};
for(int[][] i:a)
for(int[] j:i)
for(int k:j){
System.out.println(k);
}
}
}
可见,如果使用得当,for-each循环的遍历要简单一些。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: