📅  最后修改于: 2023-12-03 15:16:29.736000             🧑  作者: Mango
TreeMap
是在Java Collections Framework中实现的一个排序映射表。它提供了一种将键映射到值的方式,并保持映射的排序顺序。TreeMap
的排序顺序可以通过比较其键来定义,或者通过对 Comparator
的指定来实现。TreeMap
提供了许多有用的方法来检查,访问和修改其映射。
其中两个有用的方法是 pollFirstEntry()
和 pollLastEntry()
。本文将重点介绍这两个方法。
pollFirstEntry()
方法TreeMap.pollFirstEntry()
方法返回并删除映射表中最小键所对应的键和值,如果当前映射表为空,则返回 null
。因为TreeMap
是排序的,所以最小键将是树中最左边的叶子的键。以下是该方法的基本语法:
public Map.Entry<K, V> pollFirstEntry()
其中, Map.Entry<K, V>
是一个接口类型,代表 TreeMap
中的一个键值映射。该方法返回类型为 Map.Entry<K, V>
,因此可以轻松地访问键和值。以下是示例代码:
import java.util.TreeMap;
import java.util.Map;
public class Example {
public static void main(String[] args) {
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.put(1, "One");
treeMap.put(3, "Three");
treeMap.put(2, "Two");
Map.Entry<Integer, String> firstEntry = treeMap.pollFirstEntry();
System.out.println("First Entry: " + firstEntry.getKey() + " => " + firstEntry.getValue());
System.out.println("Remaining Entries: " + treeMap);
}
}
输出结果如下:
$ javac Example.java
$ java Example
First Entry: 1 => One
Remaining Entries: {2=Two, 3=Three}
在上述示例中,我们首先使用 put()
方法向 TreeMap
添加三个映射。然后,我们调用 pollFirstEntry()
方法,它将返回键为 1
的映射(即 One
),并把它从Map
中删除。最后,我们打印出删除的键和值,并打印出当前剩余的映射。
pollLastEntry()
方法TreeMap.pollLastEntry()
方法返回并删除映射表中最大键所对应的键和值,如果当前映射表为空,则返回 null
。因为 TreeMap
是排序的,所以最大键将是树中最右边的叶子的键。以下是该方法的基本语法:
public Map.Entry<K, V> pollLastEntry()
以下是示例代码:
import java.util.TreeMap;
import java.util.Map;
public class Example {
public static void main(String[] args) {
TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
treeMap.put(1, "One");
treeMap.put(3, "Three");
treeMap.put(2, "Two");
Map.Entry<Integer, String> lastEntry = treeMap.pollLastEntry();
System.out.println("Last Entry: " + lastEntry.getKey() + " => " + lastEntry.getValue());
System.out.println("Remaining Entries: " + treeMap);
}
}
输出结果如下:
$ javac Example.java
$ java Example
Last Entry: 3 => Three
Remaining Entries: {1=One, 2=Two}
在上述示例中,我们首先使用 put()
方法向 TreeMap
添加三个映射。然后,我们调用 pollLastEntry()
方法,它将返回键为 3
的映射(即 Three
),并把它从Map
中删除。最后,我们打印出删除的键和值,并打印出当前剩余的映射。
TreeMap.pollFirstEntry()
方法可用于删除映射表中的最小键及其对应的值,而 TreeMap.pollLastEntry()
方法可用于删除映射表中的最大键及其对应的值。这两个方法可以使我们便捷地从TreeMap
中删除键值映射,而且这些操作是 O(log n) 的时间复杂度。