数组及相关知识

什么是数组【理解】

数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。

数组的格式

格式一:数据类型 [ ] 变量名
范例: int[ ] arr
定义了一个int类型的数组,数组名是arr
推荐一

格式二:数据类型 变量名[ ]
范例: int arr[ ]
定义了一个int类型的变量,变量名是arr数组

动态初始化

概述:数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。

格式

格式:数据类型 [ ] 变量名 = new 数据类型[数组长度];
范例: int [ ] arr = new int[3];
左边:
int:说明数组中的元素类型是int类型
[]:说明这是一个数组
arr:这是数组的名称

右边:
new:为数组申请内存空间
int:说明数组中的元素类型是int类型
[]:说明这是一个数组
3:数组长度,其实就是数组中的元素个数

数组元素访问:

数组变量访问方式
格式:数组名

数组内部保存的数据的访问方式
格式:数组名[索引]

索引是数组中数据的编号方式
作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
特征①:索引从0开始
特征②:索引是连续的
特征③:索引逐一增加,每次加1

静态初始化

静态初始化概述:初始化时指定每个数组元素的初始值,由系统决定数组长度

格式

格式:数据类型 [ ] 变量名 = new 数据类型[ ] { 数据1 , 数据2 , 数据3 , ……} ;
范例: int [ ] arr = new int[ ] { 1 , 2 , 3 } ;

简化格式:数据类型 [ ] 变量名 = { 数据1 , 数据2 , 数据3 , ……} ;
范例: int [ ] arr = { 1 , 2 , 3 } ;

推荐简化格式

内存分配

数组在初始化时,会为存储空间添加默认值
整数:默认值0
浮点数:默认值0.0
布尔值:默认值false
字符:默认值是空字符
引用数据类型:默认值是null

索引越界异常

索引越界概述:访问了数组中不存在的索引对应的元素,造成索引越界问题。

比如数组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

空指针异常

空指针异常概述:访问的数组已经不再指向堆内存的数据,造成空指针异常。
null:空值,引用数据类型的默认值,表示不指向任何有效对象。
arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。

数组遍历

当一个数组有多个数据时,可以通过遍历来输出:
int[] arr = {11,22,33,44,55};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);

简化:
//通过 for循环实现获取数据,索引 0-4
for(int x=0; x<5; x++) { System.out.println(arr[x]);}

获取数组长度

但是有很多数据是应该只能做呢?

int[] arr = {……};
for(int x=0; x< ? ; x++) { System.out.println(arr[x]);}

这时的条件判断语句该怎么写?
这时就需要先获取元素数量,在进行for循环输出;
格式:数组名.length
范例:arr.length

int[] arr = {11,22,33,44,55};
for(int x=0; x<arr.length; x++) {
System.out.println(arr[x]);}
int[] arr = {……};
for(int x=0; x<arr.length; x++) { System.out.println(arr[x]);}

遍历通用格式;

int[] arr = {……};
for(int x=0; x<arr.length; x++) {
arr[x] //对arr[x]进行操作}

最大值

概述;获取一个数组中的最大值。
方法;
1:定义一个变量,用于保存最大值(或最小值)

2:取数组中第一个数据作为变量的初始值

3:与数组中剩余的数据逐个比对,每次比对将最大值保存到变量中

4:循环结束后打印变量的值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值