📜  Java中的Java .util.TreeMap.pollFirstEntry() 和 pollLastEntry()(1)

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

Java中的Java.util.TreeMap.pollFirstEntry() 和 pollLastEntry()

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) 的时间复杂度。