📜  Java中的 TreeMap floorKey() 示例(1)

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

Java中的 TreeMap floorKey() 示例

TreeMap是Java中的一种有序映射。floorKey(Object key)是TreeMap类中的一个方法,用于返回与小于或等于给定键的Map中的最大键。在本文中,我们将会介绍Java中的TreeMap和floorKey()方法,以及一个示例程序的实现。

TreeMap

TreeMap是Java中一个基于红黑树实现的有序映射。它提供了按照自然顺序或者自定义顺序排序的key-value对。TreeMap是线程不安全的,但它具有快速的操作速度(时间复杂度为O(log(n)))。

下面是一个简单的例子展示了如何通过自定义比较器来创建一个TreeMap,实现以升序排列的键值对。

import java.util.Comparator;
import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] args) {
        TreeMap<Integer, String> treeMap = new TreeMap<>(Comparator.naturalOrder());
        treeMap.put(1, "apple");
        treeMap.put(2, "banana");
        treeMap.put(3, "orange");
        treeMap.put(4, "pear");
        System.out.println(treeMap); // 输出 {1=apple, 2=banana, 3=orange, 4=pear}
    }
}
floorKey()方法

floorKey(Object key)是TreeMap类中的一个方法,用于返回与小于或等于给定键的Map中的最大键。如果没有小于或等于给定键的键,则返回null。

下面是floorKey()方法的语法:

public K floorKey(K key)

其中,K是泛型参数,表示Map中键的类型。key是要查找的键。

来看一个示例程序,展示了如何使用floorKey()方法来查找Map中与小于或等于指定键的最大键。

import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] args) {
        TreeMap<Integer, String> treeMap = new TreeMap<>();
        treeMap.put(1, "apple");
        treeMap.put(3, "orange");
        treeMap.put(5, "banana");

        Integer key = 4;
        Integer floorKey = treeMap.floorKey(key);
        System.out.println("floorKey(" + key + ") = " + floorKey); // 输出 floorKey(4) = 3

        key = 5;
        floorKey = treeMap.floorKey(key);
        System.out.println("floorKey(" + key + ") = " + floorKey); // 输出 floorKey(5) = 5

        key = 0;
        floorKey = treeMap.floorKey(key);
        System.out.println("floorKey(" + key + ") = " + floorKey); // 输出 floorKey(0) = null
    }
}

在上面的示例中,我们创建了一个TreeMap对象,分别插入了键为1、3和5的键值对。接着,我们调用了floorKey()方法,传入了key值为4、5和0的键。程序输出了floorKey()方法的返回值。

从输出结果中可以看出:当key值为4时,floorKey()方法返回了最大的小于4的键3;当key值为5时,floorKey()方法返回了等于5的键5;当key值为0时,floorKey()方法返回了null,因为Map中不存在小于0的键。

总结

在本文中,我们介绍了Java中的TreeMap和floorKey()方法,并通过示例程序演示了floorKey()方法的用法。通过这篇文章的学习,读者可以加深对TreeMap和floorKey()方法的理解,进一步掌握Java的集合框架中 TreeMap 的使用。