数组
数组是把相同类型的变量放在一组数据中.
数组的长度一经设定便无法改变,所以增删难度较大.
格式:数组类型[] 数组变量名 = new 数组类型[长度];
// 定义了一个长度为 3 的 int 类型数组
int[] ages = new int[3];
// 格式:数组类型[] 数组变量名 = new 数组类型[]{数据1, 数据2, 数据3,...}
// 创建了一个长度为 3 的 int 类型数组
int[] ages2 = new int[]{18, 20, 30};
// 格式:数组类型[] 数组变量名 = {数据1, 数据2, 数据3,...}
int[] ages3 = {18, 20, 30};// 创建了一个长度为 3 的 int 类型数组
数组越界异常
数组的长度是不可变的,如果获取超出数据界限会发生数组越界异常
//数组的下标从0开始 所以数组下标最大值为ages2[2];
System.out.println("ages2[3] = " + ages2[3]);
//运行结果:
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 //out of bounds for length 3
空指针异常
//创建一个长度为5的int类型的数组
int[] arr = new int[5];
arr = null;
System.out.println(arr[0]);
//运行结果:Exception in thread "main" java.lang.NullPointerException
取数组中的最大值与最小值
public static int getArrMax(int[] arrays) {
// 定义一个临时变量,假设是最大值
int max = arrays[0];
for (int i = 1; i < arrays.length; i++) {
// 使用 max 和数组的下一位进行比较
if (arrays[i] > max) {
// 如果大于 max 重新赋值给 max
max = arrays[i];
}
}
// 最终返回这个最大值
return max;
}
//求数组中的最小值
public static int ArrayMin(int[] arrays){
// // 定义一个临时变量,假设是最小值
int min = arrays[0];
for (int i = 1; i < arrays.length; i++) {
// 使用 min 和数组的下一位进行比较
if (arrays[i]<min){
// 如果小于 min 重新赋值给 max
min = arrays[i];
}
}
//返回结果
return min;
}
数组的遍历
普通for
for (int i = 0; i <ages2.length ; i++) {
System.out.println(ages2[i]);
}
增强for
for(int arr : ages2){
System.out.println(arr);
}
Arrays数组工具类
java.util.Arrays
int[] arrNum = {3, 7, 6, 9, 2, 1, 8};
// sort 排序 从小到大
Arrays.sort(arrNum);
// 将数据中的数据返回字符串
System.out.println(Arrays.toString(arrNum));
// 替换全部
Arrays.fill(arrNum, 50);
System.out.println(Arrays.toString(arrNum));
// 替换区间
Arrays.fill(arrNum, 2, 4, 100);// 左闭右开
System.out.println(Arrays.toString(arrNum));
// 拷贝数组指定拷贝的索引从0开始到newLength结束
int[] result = Arrays.copyOf(arrNum, 5);
System.out.println(Arrays.toString(result));
result = Arrays.copyOfRange(arrNum, 2, 5);
System.out.println(Arrays.toString(result));
二维数组
第一维数组的元素都是一个单独的数组
// 格式:数据类型[][] 数组变量名 = new 数据类型[][];
int[][] arrs = {{1, 2}, {5, 6, 7}, {9, 0, 1, 2}};
// 如何获取数组中的数据
// 格式:数组变量名[索引][索引];
int num = arrs[1][2];
System.out.println("num = " + num);