目录
Arrays工具类的使用
java.util.Arrays 类即为操作数组的工具类 包含 了用来操作数组 了用来操作数组 了用来操作数组 比如排序和搜索 )的各种方法 。
package com.atguigu.java;
import java.util.Arrays;
/*
* java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法
*
*
*/
public class ArraysTest {
public static void main(String[] args) {
//1.boolean equals(int[] a,int[] b):判断两个数组是否相等。
int[] arr1 = new int[]{1,2,3,4};
int[] arr2 = new int[]{1,3,2,4};
boolean isEquals = Arrays.equals(arr1, arr2);
//Arrays.equals(arr1, arr2)会返回一个布尔型的值,用变量isEquals接受它。
System.out.println(isEquals);
//2.String toString(int[] a):输出数组信息。
System.out.println(Arrays.toString(arr1));
//3.void fill(int[] a,int val):将指定值填充到数组之中。
Arrays.fill(arr1,10);
//[10, 10, 10, 10]
//把数组原来的值全部替换为参数。
System.out.println(Arrays.toString(arr1));
//4.void sort(int[] a):对数组进行排序。底层用的是快排。
Arrays.sort(arr2);
System.out.println(Arrays.toString(arr2));
//5.int binarySearch(int[] a,int key)
//二分查找
int[] arr3 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
int index = Arrays.binarySearch(arr3, 210);
if(index >= 0){
System.out.println(index);
}else{
System.out.println("未找到");
}
}
}
数组的常见异常
数组脚标越界异常 (ArrayIndexOutOfBoundsException )
-
System.out.println (arr [2]);
-
int[] arr = new int int[2];
-
System.out.println (arr[-1]);
-
访问到了数组中的不存在脚标时发生。
空指针异常 (NullPointerException)
-
int int[] arr = null null ;
-
System.out.println (arr [0]);
-
arr 引用没有指向实体,却在操作中的元素时。
数组角标越界的异常 (ArrayIndexOutOfBoundsException )
public class ArrayExceptionTest {
public static void main(String[] args) {
//1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
int[] arr = new int[]{1,2,3,4,5};
for(int i = 0;i <= arr.length;i++){
System.out.println(arr[i]);
}
//打印不出来arr[5]
//System.out.println(arr[-2]);越界
//System.out.println("hello");出现异常,程序终止,打印hello没有执行
}
}
-
空指针异常(NullPointerException)
public class ArrayExceptionTest {
public static void main(String[] args) {
//2.2. 空指针异常:NullPointerException
//情况一:
// int[] arr1 = new int[]{1,2,3};
// arr1 = null;//执行本语句之前栈空间里的变量arr1存放的是堆空间里arr1数组的首地址值
// System.out.println(arr1[0]);//空指针异常
//情况二:
// int[][] arr2 = new int[4][];
// System.out.println(arr2[0][0]);//返回null 参照二维数组的初始化
//情况三:
String[] arr3 = new String[]{"AA","BB","CC"};
arr3[0] = null;
System.out.println(arr3[0].toString());
//空指针异常
}
}
-
二维数组元素的默认初始化值
-
针对于初始化方式一:比如:int[]-[] arr = new int[4]-[3];
-
外层元素的初始化值为:地址值
-
内层元素的初始化值为:与一维数组初始化情况相同
-
-
针对于初始化方式二:比如:int arr = new int[4]-[];
-
外层元素的初始化值为:null
-
内层元素的初始化值为:不能调用,否则报错。
-