Java基础教程——二维数组

二维数组

Java里的二维数组其实是数组的数组,即每个数组元素都是一个数组。

每个数组的长度不要求一致,但最好一致。

		// 同样有两种风格的定义方法
		int[][] _arr21_推荐 = { { 1, 2 }, { 3 } };
		int arr22[][] = { { 1, 2 }, { 3 } };
		// 另外还有一种***钻的写法,据说在面试题中出现过
		int[] arr23[] = { { 1, 2 }, { 3 } };

二维数组的初始化:

		int[][] _arr21 = { { 1, 2 }, { 3, 4 } };
		// 不赋初始值,只是定义数组的大小
		int[][] _arr22 = new int[2][3];
		// 第二维度可以省略;第一维度告诉编译器有多少个数组,不能省
		int[][] _arr23 = new int[2][];

例:表格数据输出

模拟豆瓣评分 《霸王别姬》 《阿甘正传》 《大话西游》
Andy 9.5 9.4 9.1
Bob 3 8.7 9
Cat 3 7 1
Dog 9.9 3 3
public class 二维数组 {
	public static void main(String[] args) {
		double[][] films = { { 9.5, 9.4, 9.1 }, { 3, 8.7, 9 }, { 3, 7, 1 }, { 9.9, 3, 3 } };
		// 二维数组的遍历
		System.out.println("###使用传统for循环###");
		for (int i = 0; i < films.length; i++) {
			for (int j = 0; j < films[i].length; j++) {
				System.out.print(films[i][j] + "\t");
			}
			System.out.println();
		}
		System.out.println("###使用foreach语法###");
		for (double[] ds : films) {
			for (double d : ds) {
				System.out.print(d + "\t");
			}
			System.out.println();
		}
	}
}

想想,是否还有更简单的输出方案?你至少有两种方案要说。


练习题:
判断一个3*3的矩阵是不是单位矩阵“Unit Matrix”(对角线上元素是1,其余元素是0)

1 0 0
0 1 0
0 0 1
public class 单位矩阵 {
	public static void main(String[] args) {
		int[][] m = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };
		for (int i = 0; i < m.length; i++) {
			for (int j = 0; j < m[i].length; j++) {
				if ((i == j && m[i][j] == 1)) {
					// 1.对角线上元素是1
				} else if (i != j && m[i][j] == 0) {
					// 2.非对角线上元素是0
				} else {
					// 3.以上都不满足
					System.out.println("不是单位矩阵");
					return;
				}
			}
		}
		System.out.println("是单位矩阵");
	}
}
posted @ 2019-07-12 23:58  虎老狮  阅读(640)  评论(0编辑  收藏  举报