多维数组

多维数组

1. Why?

方式一

如果要求要计算一个班的五名同学的成绩和,可以使用一维数组 + 普通循环解决。

而如果要计算三个班的各五名同学的成绩和,一维数组和普通循环实现起来不够好,所以我们才需要学习更高级的概念:多维数组。

2. 概念

多维数组,可以理解为嵌套数组。

二维数组:是以 一维数组 作为 数组元素 的数组,即 “数组的数组”。

多维数组的常见表现形式是二维数组、三维数组,但一般以二维数组居多。

多维数组在Java中,语法是存在的,但内存角度来看的话,只有一维数组。

3. 定义

// 数据类型[] 数组名 = new 数据类型[容量/长度];
// 存储一个班五名同学的成绩
//     成绩数据类型:double
//     数据容量:5
double[] scores = new double[5];
scores[0] = 90;
scores[1] = 90;
scores[2] = 90;
scores[3] = 90;
scores[4] = 90;
// 数据类型[][] 数组名 = new 数据类型[外维数组容量][内维数组容量];
// 存储三个班五名同学的成绩
//		外维数组:存储的是三个班的成绩
//		内维数组:每个班五名学生成绩
//		外维数组的数据类型:double[]
//		内维数组的数据类型:double
double[][] scores = new double[3][5];
// 存储第一个班的成绩
scores[0][0] = 90;
scores[0][1] = 90;
scores[0][2] = 90;
scores[0][3] = 90;
scores[0][4] = 90;
// 存储第二个班
scores[1][0] = 90;
scores[1][1] = 90;
scores[1][2] = 90;
scores[1][3] = 90;
scores[1][4] = 90;
// 存储第三个班
scores[2][0] = 90;
scores[2][1] = 90;
scores[2][2] = 90;
scores[2][3] = 90;
scores[2][4] = 90;

数组也是一种数据类型,但是它不是普通的数据类型(int、double),数组是一组相同数据类型的数据。int[]、double[]。

二维数组:int[][]

三维数组:int[][][]

方式二

// 存储一个班五名同学的成绩
double[] scores = {90, 90, 90, 90, 90};
// 存储三个班的五名同学的成绩
// 把{}看做一个一维数组
double[][] scores = {{90, 90, 90, 90, 90}, {90, 90, 90, 90, 90}, {90, 90, 90, 90, 90}};

动态赋值

// 定义二维数组,用来存储三个班各五名同学成绩
		double[][] scores = new double[3][5];
		
		Scanner scan = new Scanner(System.in);
		// 动态录入成绩
		// 循环外维数组
		for (int i = 0; i < scores.length; i++) {
			System.out.println("开始录入第" + (i + 1) + "个班的学生的成绩:");
			// 循环内维数组
			for (int j = 0; j < scores[i].length; j++) {
				System.out.print((i + 1) + "班的第" + (j + 1) + "学生的成绩:");
				scores[i][j] = scan.nextDouble();
			}
		}
		System.out.println("第一个班的第三名同学的成绩:" + scores[0][2]);

方式三

二维数组,其实只需要指定好

// 存储三个班成绩,一班三人,二班二人,三班三人
		double[][] scores = new double[3][];
		scores[0] = new double[3];
		scores[1] = new double[2];
		scores[2] = new double[3];

		Scanner scan = new Scanner(System.in);
		// 动态录入成绩
		// 循环外维数组
		for (int i = 0; i < scores.length; i++) {
			System.out.println("开始录入第" + (i + 1) + "个班的学生的成绩:");
			// 循环内维数组
			for (int j = 0; j < scores[i].length; j++) {
				System.out.print((i + 1) + "班的第" + (j + 1) + "学生的成绩:");
				scores[i][j] = scan.nextDouble();
			}
		}
		System.out.println("第一个班的第三名同学的成绩:" + scores[0][2]);

在这里插入图片描述

4. Arrays工具类

API:Application Programming Interface应用程序接口。

Arrays 是Java提供的数组操作类,提供了大量的数组操作方法。

它和Scanner一样,都是在java.util包下的,所以在使用时也需要先import导入

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值