📜  Java中的比较器 reversed() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:16:33.812000             🧑  作者: Mango

Java中的比较器 reversed() 方法及示例

在Java中,比较器是一种用于比较两个对象的接口。在使用排序算法或者需要比较对象时,我们可以使用比较器。Java中提供了一个Comparator接口来实现比较器。Comparator接口包含两种方法:compare()和equals()。其中,compare()方法在排序时用到。

在Comparator接口中还有一个reversed()方法,用于返回一个与原始比较器排序相反的比较器。reversed()方法返回的比较器与原始比较器正好相反。当我们使用Collections.sort()方法或者Arrays.sort()方法进行排序时,可以使用reversed()方法返回一个新的比较器,来实现倒序排序。

reversed()方法的语法
public static <T> Comparator<T> reversed(Comparator<T> cmp)

reversed()方法是一个静态方法,它可以从Comparator接口中获得。reversed()方法的参数是一个Comparator类型的比较器cmp,用于制定要反转的比较器。

reversed()方法的示例

下面是一个使用reversed()方法的示例。在这个示例中,我们将对一个String类型的List进行排序。我们首先使用默认的Comparator对List进行排序,然后使用reversed()方法返回一个新的比较器,反转原始比较器,用于对List进行倒序排序。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ReverseComparatorExample {

    public static void main(String[] args) {

        // Create a list of string
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
        names.add("David");
        names.add("Eva");

        // Sort the list using default Comparator
        Collections.sort(names);

        System.out.println("Sorted List: " + names);

        // Create a reversed Comparator
        Comparator<String> reverse = Collections.reverseOrder();

        // Sort the list using reversed Comparator
        Collections.sort(names, reverse);

        System.out.println("Reversed Sorted List: " + names);
    }
}

在上面的示例中,我们首先使用Collections.sort()方法使用默认的Comparator对List进行排序。然后,我们使用Collections.reverseOrder()方法返回一个新的比较器,这个比较器用于对字符串进行倒序排序。最后,我们使用Collections.sort()方法,并传递这个比较器来对List进行倒序排序。

上述程序可以使用markdown格式进行展示,代码片段如下:

## reversed()方法的示例

下面是一个使用reversed()方法的示例。在这个示例中,我们将对一个String类型的List进行排序。我们首先使用默认的Comparator对List进行排序,然后使用reversed()方法返回一个新的比较器,反转原始比较器,用于对List进行倒序排序。

```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class ReverseComparatorExample {

    public static void main(String[] args) {

        // Create a list of string
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
        names.add("David");
        names.add("Eva");

        // Sort the list using default Comparator
        Collections.sort(names);

        System.out.println("Sorted List: " + names);

        // Create a reversed Comparator
        Comparator<String> reverse = Collections.reverseOrder();

        // Sort the list using reversed Comparator
        Collections.sort(names, reverse);

        System.out.println("Reversed Sorted List: " + names);
    }
}