📅  最后修改于: 2023-12-03 15:16:29.701000             🧑  作者: Mango
在Java中,TreeMap
是一种有序的映射集合。它存储键值对,并按照键的自然顺序或比较器的顺序进行排序。在TreeMap
中,有两种方法可以返回键的逆序视图。它们是descendingMap()
和descendingKeyset()
方法。下面是这两种方法的介绍:
descendingMap()
descendingMap()
方法返回一个TreeMap
,其中的所有键值对都按照键的逆序排列。即,第一个键是原有TreeMap
中的最后一个键,最后一个键是原有TreeMap
中的第一个键。下面是descendingMap()
方法的语法:
public NavigableMap<K,V> descendingMap();
这里,NavigableMap
是TreeMap
实现的接口。K
和V
是树映射中的键和值的类型。下面是descendingMap()
方法的用法示例:
import java.util.TreeMap;
import java.util.NavigableMap;
public class Main {
public static void main(String[] args) {
TreeMap<String, Integer> grades = new TreeMap<>();
grades.put("Alice", 90);
grades.put("Bob", 80);
grades.put("Charlie", 70);
NavigableMap<String, Integer> descendingGrades = grades.descendingMap();
System.out.println("Grades in descending order:");
for (String name : descendingGrades.keySet()) {
System.out.println(name + " scored " + descendingGrades.get(name));
}
}
}
输出结果:
Grades in descending order:
Charlie scored 70
Bob scored 80
Alice scored 90
在上面的代码中,我们首先创建一个TreeMap
对象grades
,并将一些成绩添加到映射中。我们然后调用descendingMap()
方法,将返回一个指定键的逆序视图的新映射descendingGrades
。最后,我们使用for
循环遍历descendingGrades
的keySet()
,并打印出每个键及其对应的值。
descendingKeyset()
descendingKeyset()
方法返回一个逆序的NavigableSet
,其中包含键的逆序。即,第一个键是原有TreeMap
中的最后一个键,最后一个键是原有TreeMap
中的第一个键。下面是descendingKeyset()
方法的语法:
public NavigableSet<K> descendingKeySet();
这里,NavigableSet
是TreeMap
实现的接口。K
是树映射中的键的类型。下面是descendingKeyset()
方法的用法示例:
import java.util.TreeMap;
import java.util.NavigableSet;
public class Main {
public static void main(String[] args) {
TreeMap<String, Integer> grades = new TreeMap<>();
grades.put("Alice", 90);
grades.put("Bob", 80);
grades.put("Charlie", 70);
NavigableSet<String> descendingNames = grades.descendingKeySet();
System.out.println("Names in descending order:");
for (String name : descendingNames) {
System.out.println(name);
}
}
}
输出结果:
Names in descending order:
Charlie
Bob
Alice
在上面的代码中,我们首先创建一个TreeMap
对象grades
,并将一些成绩添加到映射中。我们然后调用descendingKeyset()
方法,将返回一个键的逆序视图的新NavigableSet
对象descendingNames
。最后,我们使用for
循环遍历descendingNames
,并打印出每个键。