1:数组(掌握)
(1)概述:存储同一种数据类型的多个元素的容器。
同一数据类型 多个元素容器;
(2)定义格式
A:数据类型[] 数组名;
例如:int[] arr1;
B:数据类型 数组名[];(了解)
(3)数组的初始化
初始化:分配地址空间,赋初值
A:动态初始化
只给长度,系统给出默认值
格式:数据类型[] 数组名 = new 数据类型[数组长度];
举例:int[] arr = new int[3];
B:静态初始化
给出值,系统决定长度
格式:数据类型[] 数组名 = new 数据类型[]{值1,值2,值3...};
数据类型[] 数组名 = {值1,值2,值3...};
举例:int[] arr = new int[]{1,2,3};
简化版:int[] arr = {1,2,3};
(4)使用
A:索引:范围 0 --- 数组长度-1
B:赋值: 数组名[索引] = 值; 例:arr[0] = 100;
取值: 数据类型 值 = 数组名[索引]; 例: int a = arr[0];
C: 数组名: 代表数组在内存中的内存空间地址
D:获取数组长度: 数组名.length 例:arr.length
(5)注意事项:
数组索引越界
ArrayIndexOutOfBoundsException
访问到了数组中的不存在的索引时发生。
空指针异常
NullPointerException
数组引用没有指向实体,却在操作实体中的元素时
(6)数组的常见操作
A:遍历
方式1:
public static void printArray(int[] arr) {
for(int x=0; x<=arr.length-1; x++) {
System.out.println(arr[x]+" ");
}
}
B:最值
最大值:
public static int getMax(int[] arr) {
int max = arr[0];
for(int x=1; x<=arr.length-1; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
return max;
}
最小值:
public static int getMin(int[] arr) {
int min = arr[0];
for(int x=1; x<=arr.length-1; x++) {
if(arr[x] < min) {
min = arr[x];
}
}
return min;
}
C:逆序
方式1:
public static void reverse(int[] arr) {
for(int x=0; x<arr.length/2; x++) {
int temp = arr[x];
arr[x] = arr[arr.length-1-x];
arr[arr.length-1-x] = temp;
}
}
D:查表
public static String getString(String[] strArray,int index) {
return strArray[index];
}
E:基本查找
public static int getIndex(int[] arr,int value) {
int index = -1;
for(int x=0; x<arr.length; x++) {
if(arr[x] == value) {
index = x;
break;
}
}
return index;
}