目录
前言:
Arrays 类是一个工具类,其中包含了数组操作的很多方法。这个 Arrays 类里均为 static 修饰的方法(static 修饰的方法可以直接通过类名调用),可以直接通过 Arrays.xxx(xxx) 的形式调用方法。
1.概述:
数组操作工具类,专门用于操作数组元素。
2.Arrays类的常用的API
3.代码演示:
import java.util.Arrays;
/**Arrays :数组操作工具类,专门操作数组元素的
* public static String toString(类型[]a) 对数组进行排序
* public static void sort(类型[]a) 对数组进行默认排序
* public static <T> void sort(类型[]a, Comparator< ?super T>) 使用比较器对象自定义排序
* public static int binarySearch(int[] a,int key) 二分搜索数组中的数据,存在返回索引,不存在返回-1
*/
public class Arrays_Demo1 {
public static void main(String[] args) {
int[] arr = {10,19,2,23,254,45};
System.out.println(arr);
//1、返回数组内容
// String rs = Arrays.toString(arr);
// System.out.println(rs);
System.out.println(Arrays.toString(arr));
//2、排序的(默认升序排序)
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//3、二分搜索(前提:数组排好序才支持)
int index = Arrays.binarySearch(arr,45);
System.out.println(index);
//返回不存在元素的规律(应该插入的位置索引+1)
int index2 = Arrays.binarySearch(arr,27);
System.out.println(index2);
}
}
4.Arrays类的排序方法
5.自定义排序规则
设置Comparator接口对应的比较器对象,来定制比较规则。
6.代码演示:
import ArrayList.Student;
import java.util.Arrays;
import java.util.Comparator;
public class Arrays_Demo2 {
public static void main(String[] args) {
//1、Arrays的sort方法对于有值特性的数组是默认升序排序
int[] ages = {34,12,42,23};
Arrays.sort(ages);
System.out.println(Arrays.toString(ages));
//2、降序排序
Integer[] ages1 = {34,12,42,23};
Arrays.sort(ages1, new Comparator<Integer>() {
@Override//参数1 :被排序的数组
//参数二:匿名内部类,代表一个比较器对象
public int compare(Integer o1, Integer o2) {
//制定规则
// if (o1 > o2) {
// return 1;
// }else if(o1<o2) {
// return -1;
// }
return o1-o2;//默认升序
// return o2-o1;//降序
}
});
System.out.println(Arrays.toString(ages1));
System.out.println("======================");
Student[] student = new Student[3];
student[0] = new Student(13,"吴磊",34,"卓越一班");
student[1] = new Student(17,"文章",24,"卓越二班");
student[2] = new Student(19,"小黑",32,"卓越三班");
System.out.println(Arrays.toString(student));
Arrays.sort(student, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getAge()-o2.getAge();//升序排序
}
});
}
}