📅  最后修改于: 2023-12-03 15:31:55.951000             🧑  作者: Mango
TreeMap是Java中的一种有序映射。floorKey(Object key)是TreeMap类中的一个方法,用于返回与小于或等于给定键的Map中的最大键。在本文中,我们将会介绍Java中的TreeMap和floorKey()方法,以及一个示例程序的实现。
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(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 的使用。