Arrays类
数据的工具类java.util.Arrays
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作。
查看JDK基本文档
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”)
具有以下常用功能:
给数组赋值:通过fill方法。
对数组排序:通过sort方法,按升序。
比较数组:通过equals方法比较数组中元素值是否相等。
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
public static void main(String[] args) {
//找Arrays类
//Arrays
int[]a={1,35,6,4565,45,7565,4};
System.out.println(a); //[I@1b6d3586
//1.打印数组元素,用Arrays下面的toString方法
System.out.println(Arrays.toString(a));//输出结果 [1, 35, 6, 4565, 45, 7565, 4]
printArray(a); //输出结果为:[1, 35, 6, 4565, 45, 7565, 4]
System.out.println("");
//2.数组进行排序,用Arrays下面的sort方法,升序
Arrays.sort(a);
System.out.println(Arrays.toString(a));//输出结果为:[1, 4, 6, 35, 45, 4565, 7565]
//3.数组填充,用Arrays下面的fill方法,fill(数组,填充的值)
Arrays.fill(a,0);
System.out.println(Arrays.toString(a));//输出结果为 [0, 0, 0, 0, 0, 0, 0]
//4.填充对应序列得知
Arrays.fill(a,2,4,11);
System.out.println(Arrays.toString(a));//输出结果为:[0, 0, 11, 11, 0, 0, 0],第二到第四个元素间被11填充
}
//自己编写的方法和toString效果一样
public static void printArray(int[] a){
System.out.print("[");
int t=0;
for (int i = 0; i < a.length-1 ; i++) {
System.out.print(a[i]+", ");
t=i+1;
}
System.out.print(a[t]);
System.out.print("]");
}
Java中Arrays类的常用方法
Arrays.sort(); //数组排序
Arrays类有一个静态方法sort,利用这个方法可传入要排序的数组进去排序,因为传入的是一个数组的引用,所以排序完成的结果也通过这个引用来更改数组。
1.数字排序
int[] intArray = new int[] { 4, 1, 3, -23 };
Arrays.sort(intArray);
//输出: [-23, 1, 3, 4]
2.字符串排序,先大写后小写
String[] strArray = new String[] { “z”, “a”, “C” };
Arrays.sort(strArray);
//输出: [C, a, z]
3.严格按字母表顺序排序,也就是忽略大小写排序 Case-insensitive sort
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);
//输出: [a, C, z]
Arrays.toString(); //将数组中的内容全部打印出来
int[] arr = {3,2,1,5,4};
System.out.print(arr);//直接将数组打印输出
//输出:[I@7852e922 (数组的地址)
String str = Arrays.toString(arr); // Arrays类的toString()方法能将数组中的内容全部打印出来
//System.out.print(str);
//输出:[3, 2, 1, 5, 4]
Arrays.equals(); //比较数组元素是否相等
int[] arr1 = {1,2,3};
int[] arr2 = {1,2,3};
System.out.println(Arrays.equals(arr1,arr2));
//输出:true
//如果是arr1.equals(arr2),则返回false,因为equals比较的是两个对象的地址,不是里面的数,而Arrays.equals重写了equals,所以,这里能比较元素是否相等。