java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如搜索和排序)的各种方法
序号 | 方法 | 说明 |
---|---|---|
1 | boolean equals(int[] a, int[] b) | 判断连个数组是否相等 |
2 | String toString(Int[] a) | 输出数组的信息 |
3 | void fill(int[] a, int val) | 将指定值填充到数组之中 |
4 | void sort(int[] a) | 对数组进行排序 |
5 | int binarySearch(int[] a, int key) | 对排序后的数组进行二分法检索指定的值 |
import java.util.Arrays;
public class ArraysTest {
public static void main(String[] args) {
//1.判断两个数组是否相等
int[] arr1 = new int[]{1, 2, 3, 4};
int[] arr2 = new int[]{1, 3, 2, 4};
boolean isEquals = Arrays.equals(arr1, arr2);
System.out.println(isEquals); //false
//2.输出数组的信息
System.out.println(Arrays.toString(arr1));
//3.把指定的值填充到数组之中
Arrays.fill(arr1, 10);
System.out.println(Arrays.toString(arr1));
//4.对数组进行排序
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
//5.二分法查找
int[] arr3 = new int[] {-98, -34, 2, 34, 54, 78, 79, 106, 210, 333};
int index = Arrays.binarySearch(arr3, 210);
if(index >= 0) {
System.out.println(index);
}else {
System.out.println("未找到~");
}
}
}
数组中的常见异常
- 数组角标越界异常:ArrayIndexOutOfBoundsException
public class ArrayExecptionTest {
public static void main(String[] args){
int[] arr = new int[]{1, 2, 3, 4, 5};
for(int i = 0; i <= arr.length; i++) {
System.out.println(arr[i]);
}
//System.out.println(arr[-2]); //同样报错
}
}
2.空指针异常: NullPointerException
public class ArrayExecptionTest {
public static void main(String[] args){
//情况一:
//int[] arr1 = new int[]{1, 2, 3};
//arr1 = null;
//System.out.println(arr1[0]); //Exception in thread "main" java.lang.NullPointerException: Cannot load from int array because "arr1" is null
//情况二:
//int[][] arr2 = new int[4][];
//System.out.println(arr2[0][0]); //Exception in thread "main" java.lang.NullPointerException: Cannot load from int array because "arr2[0]" is null
//情况三:
String[] arr3 = new String[]{"AA", "BB", "CC"};
arr3[0] = null;
System.out.println(arr3[0].toString()); //Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.toString()" because "arr3[0]" is null
}
}