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

有时候,一维数组难以满足程序的需求,就需要使用多维数组。而二维数组是使用最多的多维数组。

二维数组的声明和初始化

数组类型  数组名[][]; //声明二维数组
数组名 = 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循环的遍历要简单一些。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值