从零开始学Java--day05--数组(一)

数组(一)

1.数组概念

数组:在程序中存储同一种数据类型多个元素的固定容器.

数组的前提条件(特点):
1.数组一旦进行初始化其长度是固定不变的;
2. 数组中的元素在内存中必须是同一种数据类型;
3. 数组中的元素个数必须是多个;

2.数组的声明初始化

数组的声明:

数据类型[] 数组名;(推荐)
数据类型 数组名[];

数组的初始化:

动态初始化:初始化数组的时候只初始化数组的长度,不会初始化数组里面的具体数据值,JVM可以直接获取数组的长度

格式:

 数据类型[] 数组名 = new 数据类型[数组长度];

静态初始化: 初始化数组的时候只初始化数组里面的具体数据值,不会初始化数组的长度,JVM可以间接获取数组的长度

标准格式:

 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,......,元素n};

简化格式:

 数据类型[] 数据名 = {元素1,元素2,......,元素n};

数组声明初始化的名词解释:

数据类型: 数组中元素的数据类型
[ ]: 声明的是一维数组
数据类型[ ]: 数组的数据类型
数组名: 数组的名字
new: 向内存申请并开辟合适内存空间
数组长度: 数组中可以存储多少个元素

数组声明初始化的注意事项:
1.数组的动态初始化和静态初始化没有推荐一说,需要根据实际需求再进行决定使用哪种初始化的方式
2.在程序中不允许通过动静结合的方式进行数组的声明初始化
3.在数组中的元素支持变量的类型转换
4.数组静态初始化的简化格式不允许先声明,后初始化

	//数组的声明1:数据类型[] 数组名;
	int[] arr01;
	//数组的声明2:数据类型 数组名[];
	int arr02[];
	//数组的初始化1:动态初始化
	int[] arr03 = new int[3];
	//数组的初始化2:静态初始化标准格式
	int[] arr04 = new int[]{11,22,33};
	//数组的初始化3:静态初始化简化格式
	int[] arr05 = {11,22,33};
	//通过数组的动静结合的方式进行初始化:错误
	//int[] arr06 = new int[5]{11,22,33};错误
	//在数组中可以支持元素的类型转换
	int[] arr07 = {11,22,33,'a',(int)3.14};
	//动态初始化:先声明后初始化
	int[] arr08;
	arr08 = new int[3];
	//静态初始化:标准格式先声明后初始化
	int[] arr09;
	arr09 = new int[]{11,22,33};
	//静态初始化:简化格式不允许先声明后初始化
	int[] arr10;

3.数组的使用

获取数组中的元素
获取数组的长度

获取数组中的元素:

需要通过"索引值"进行获取
索引值: 针对数组中的元素按照一定的规则进行的数字编号
索引值的规则: 元素编号从0开始,一直到数组的长度-1,长度为0的数组不存在索引值
格式:

数组名[索引值]

获取数组的长度

数组名.length

(1).动态访问数组长度

所有的数组都提供了一个length 属性,通过这个属性可以动态访问到数组的长度,一旦获得了数组的长度,就可以通过循环来遍历该数组的每个数组元素。
代码如下:

//通过动态初始化创建数组
	int[] arr = new int[3];

	arr[0] = 11;
	arr[1] = 22;
	arr[2] = 33;

	System.out.println(arr);
	System.out.println(arr[0]);
	System.out.println(arr[1]);
	System.out.println(arr[2]);

(2).静态访问数组长度

	//通过静态初始化的方式创建数组
	int[] arr = {11,22,33};

	System.out.println(arr);
	System.out.println(arr[0]);
	System.out.println(arr[1]);
	System.out.println(arr[2]);

数组中的三个异常:
1.NegativeArraySizeException异常:数组长度为负异常
产生原因:动态创建数组时长度为负数
2.ArrayIndexOutOfBoundsException: 数组索引越界异常
产生原因:访问错误或者不存在的索引
3.NullPointerException异常:空指针异常
产生原因:通过null获取数组元素或者对象成员

4.数组的使用

(1).按照固定格式进行数组的打印

	int[] arr = {11,22,33,44};
	for (int i = 0; i < arr.length ;i++ ) {
		System.out.println(arr[i]);
	}
		System.out.println("===========================");
	//数组:[11, 22, 33, 44]
	System.out.print("数组:[");
	for (int i = 0; i < arr.length ;i++ ) {
		if (i == arr.length - 1) { //判断索引是否为最后的索引
			System.out.println(arr[i] + "]");
	} else {
			System.out.print(arr[i] + ", ");
	}
}

(2).数组的求和

	// 定义一个数组
	int[] arr = { 11, 22, 33, 44, 55 };
	// 定义求和遍历
	int sum = 0;
	// 遍历数组
	for (int i = 0; i < arr.length; i++) {
	// 针对数组中每个元素累加求和
	sum += arr[i];
	}
	System.out.println("sum:" + sum);

(3).数组获取最大值元素

  • 最大值获取: 从数组的所有元素中找出最大值。
  • 实现思路:
    1.定义变量,保存数组0索引上的元素
    2.遍历数组,获取出数组中的每个元素
    3.将遍历到的元素和保存数组0索引上值的变量进行比较
    4.如果数组元素的值大于了变量的值,变量记录住新的值
    5.数组循环遍历结束,变量保存的就是数组中的最大值
	int[] arr = { 5, 15, 2000, 10000, 100, 4000 };
	//定义变量,保存数组中0索引的元素
	int max = arr[0];
	//遍历数组,取出每个元素
	for (int i = 0; i < arr.length; i++) {
		//遍历到的元素和变量max比较
		//如果数组元素大于max
	if (arr[i] > max) {
		//max记录住大值
		max = arr[i];
		}
	}
	System.out.println("数组最大值是:" + max);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jwwy*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值