欢迎访问宙启技术站
智能推送

Java中用来排序数组和集合的函数

发布时间:2023-06-16 20:51:06

Java中有多种方法可以排序数组和集合,常用的包括Arrays类和Collections类中的排序函数。

1. Arrays类中的排序函数

Arrays类是Java中提供的一个工具类,可以对数组进行排序。它提供了多个排序函数,常用的包括sort()和parallelSort()。

sort()函数:对数组进行快速排序。用法示例:

int[] array = {5, 2, 1, 9, 6};

Arrays.sort(array); // 数组排序

parallelSort()函数:对数组进行快速排序,利用多线程可以更快地完成排序。用法示例:

int[] array = {5, 2, 1, 9, 6};

Arrays.parallelSort(array); // 数组排序

2. Collections类中的排序函数

Collections类是Java中提供的另一个工具类,可以对集合进行排序。它提供了多个排序函数,常用的包括sort()和reverseOrder()。

sort()函数:对集合进行排序。用法示例:

List<Integer> list = new ArrayList<>();

list.add(5); list.add(2); list.add(1); list.add(9); list.add(6);

Collections.sort(list); // 集合排序

reverseOrder()函数:对集合中的元素进行倒序排列。用法示例:

List<Integer> list = new ArrayList<>();

list.add(5); list.add(2); list.add(1); list.add(9); list.add(6);

Collections.sort(list, Collections.reverseOrder()); // 集合逆序排序

3.自定义比较器

除了使用Java提供的排序函数,我们还可以自定义比较器来进行排序。比较器是实现了Comparator接口的类,用来比较两个对象的大小,从而决定它们的排序顺序。

比较器需要重写compare()方法,该方法会接受两个参数,分别为要比较的两个对象。compare()方法返回一个整数值,表示两个对象的大小关系。例如,返回负数表示第一个对象小于第二个对象,返回零表示两个对象相等,返回正数表示第一个对象大于第二个对象。

用法示例:

public class StudentComparator implements Comparator<Student> {

    @Override

    public int compare(Student s1, Student s2) {

        if (s1.getScore() < s2.getScore()) {

            return -1;

        } else if (s1.getScore() == s2.getScore()) {

            return 0;

        } else {

            return 1;

        }

    }

}

List<Student> students = new ArrayList<>();

students.add(new Student("张三", 80));

students.add(new Student("李四", 90));

students.add(new Student("王五", 70));

Collections.sort(students, new StudentComparator()); // 学生按照成绩排序

以上是Java中常用的排序函数和方法,可以根据具体的排序需求选择使用。