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

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

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

在Java中,SortedMap接口是Map的子接口,它继承了Map接口中的方法,并提供了按照键的自然顺序或自定义比较器顺序来维护键值关系的有序映射。

SortedMap接口提供了一个comparator()方法,用于返回用于排序SortedMap键的比较器。如果没有提供比较器,则使用键的自然顺序。

下面是SortedMap接口定义的比较器方法:

Comparator<? super K> comparator()

在接下来的示例中,我们将演示如何使用comparator()方法来按照自定义的顺序将键排序。

示例代码
import java.util.Comparator;
import java.util.SortedMap;
import java.util.TreeMap;

public class SortedMapExample {
    public static void main(String[] args) {
        // 创建一个自定义比较器
        Comparator<String> comparator = new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1); // 逆序排列
            }
        };

        // 创建一个有序映射
        SortedMap<String, String> sortedMap = new TreeMap<>(comparator);

        // 添加元素
        sortedMap.put("three", "3");
        sortedMap.put("one", "1");
        sortedMap.put("four", "4");
        sortedMap.put("two", "2");

        // 打印元素
        for (String key : sortedMap.keySet()) {
            System.out.println(key + " -> " + sortedMap.get(key));
        }

        // 打印比较器
        System.out.println("Comparator: " + sortedMap.comparator());
    }
}

该程序创建了一个自定义比较器来按照逆序排列字符串键。然后使用该比较器创建了一个SortedMap实例,并向其添加了元素。最后,程序输出了按照逆序排列的键值对及其比较器对象。

输出结果
two -> 2
three -> 3
one -> 1
four -> 4
Comparator: java.util.Comparator$1@2c7b84de

可以看到,输出结果按照逆序排列的键值对,并且使用创建的自定义比较器。