📅  最后修改于: 2023-12-03 14:42:50.297000             🧑  作者: Mango
在Java中,NavigableMap是一个有序的Map,其中的键和值都可以是任意类型。该类提供了一系列用于导航地图的方法,包括headMap()
、tailMap()
和subMap()
。其中,headMap()
表示返回Map中的部分数据,包括小于指定键值的所有元素。
headMap(K toKey, boolean inclusive)
: 返回一个NavigableMap,其中的所有键都小于toKey。如果inclusive为true,则包括键等于toKey的元素。
headMap(K toKey)
: 返回一个NavigableMap,其中的所有键都小于toKey。
import java.util.NavigableMap;
import java.util.TreeMap;
public class NavigableMapExample {
public static void main(String[] args) {
// 创建一个NavigableMap
NavigableMap<Integer, String> map = new TreeMap<>();
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(5, "five");
map.put(6, "six");
map.put(7, "seven");
// 返回一个NavigableMap,其中的键都小于5
NavigableMap<Integer, String> headMap = map.headMap(5, true);
System.out.println("headMap: " + headMap); // 输出:headMap: {1=one, 2=two, 3=three, 4=four, 5=five}
// 返回一个NavigableMap,其中的键都小于3
NavigableMap<Integer, String> headMap2 = map.headMap(3);
System.out.println("headMap2: " + headMap2); // 输出:headMap2: {1=one, 2=two}
}
}
headMap()
方法返回的NavigableMap是一个子集,对它的任何操作都会影响原始的Map。headMap()
方法传递的toKey必须是Map中已存在的键,否则会抛出IllegalArgumentException异常。