数组
- 数组(array)是一种用于存储多个相同类型数据的存储模型。
- 格式1:数据类型[ ] 变量名, int[ ] arr
- 定义了一个int类型的数组,数组名是arr
- 格式2:数据类型 变量名[ ],Int arr[ ]
- 定义了一个int类型的变量,变量名是arr数组
数组动态初始化
Java中的数组必须先初始化,然后才能使用。所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
- 初始化方式:动态初始化和静态初始化
- 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
- 格式:数据类型[ ] 变量名=new 数据类型[数组长度] ;
- int[ ] arr=new int[10];
左边:int:说明是数组中的元素类型是int类型。
[]:说明这是一个数组。
arr:这是数组的名称。
右边:new:为数组申请内存空间。
int:说明数组中的元素类型是int类型。
[]:说明这是一个数组。
10:数组长度,其实就是数组中的元素个数。
数组元素访问方式
格式:数组名
数组内部保存的数据的访问方式
格式:数组名[索引]
- 索引:是数组中数据的编号方式。
- 作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名。
- 特征:索引从0开始,索引是连续的,索引每次加1。
int[] arr=new int[10];
System.out.println(arr); //[I@15db9742 内存地址
//输出数组中的元素
System.out.println(arr[0]);//输出第一个数组元素 //0
System.out.println(arr[1]);//0
System.out.println(arr[2]);//0
数组在初始化时,会为存储空间添加默认值。
- 整数:默认0
- 浮点数:默认为0.0
- 布尔值:默认false
- 字符:默认空字符
- 引用数据类型:默认null
数组静态初始化
静态初始化:初始化时指定每一个数组元素的初始值,由系统决定数组长度。
- 格式:数据类型[ ] 变量名=new 数据类型[ ]{数据1,数据2…};
- 范例:int[] arr=new int[]{1,2,3,4,5,6};
- 简化格式:数据类型[] 变量名={数据1,数据2,数据3,…};
- 范例:int[] arr={1,2,3,4,5,6};
//定义数组
int[] arr=new int[] {1,2,3,4,5,6};
//输出数组名
System.out.println(arr);//[I@15db9742 输出内存地址
//输出数组中的元素
System.out.println(arr[0]);//1
System.out.println(arr[1]);//2
System.out.println(arr[2]);//3
补充:数组操作的两个常见问题
- 索引越界:访问了数组中不存在的索引对应的元素,造成了索引越界问题。
- 报错为:ArrayIndexOutOfBoundsException
- 空指针异常:访问的数组已不再指向堆内存的数据,造成空指针异常。
null:空值,引用数据类型的默认值,表示不指向任何有效对象。
int[] arr=new int[]{1,2,3,4,5,6,7,8,9,10}; 等价于后者
int[] arr={1,2,3,4,5,6,7,8,9,10};
System.out.println(arr[1]);//2
//索引越界
System.out.println(arr[10]);//ArrayIndexOutOfBoundsException
//null值赋值给数组(空指针异常)
int[] arr=new int[3];
arr=null;
System.out.println(arr[0]);//NullPointerException
数组操作
1.遍历
int arr[]=new int[]{1,2,3,4,5,6,7,8,9,10};
for(int i=0;i<10;i++){
System.out.println(arr[i]); //0,1,2,3,4,5,6,7,8,9,10
}
2.获取数组元素数量
格式:数组名.length
例如:arr.length
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);//0,1,2,3,4,5,6,7,8,9,10
}
这里arr.length 等同于 10
3.比较最大值
int arr[]=new int[] {1,2,3,4,5,6,7,8,9,10};
int max=arr[0];
for(int i=0;i<arr.length;i++) {
if(arr[i]>max) {
max=arr[i];
}
}
System.out.println(max);//10
4.获取最小值
int arr[]=new int[] {1,2,3,4,5,6,7,8,9,10};
int min=arr[0];
for(int i=0;i<arr.length;i++) {
if(arr[i]<min) {
min=arr[i];
}
}
System.out.println(min);