Java.util.TreeMap 类

java.util.TreeMap.headMap() 方法返回此映射中键小于的部分的视图(或等于,如果包含为真)toKey。返回的映射由此映射支持,因此返回的映射中的更改会反映在此映射中,反之亦然。返回的映射支持该映射支持的所有可选映射操作。

语法

public NavigableMap<K,V> headMap(K toKey,
                                 boolean inclusive)

这里,K和V分别是容器维护的键和值的类型。

参数

toKey 指定返回映射中键的高端点。
inclusive 如果要在返回的视图中包含高端端点,则指定 true。

返回值

返回此映射中键小于(或等于,如果包含为 true)toKey 的部分的视图。

异常

  • 如果 toKey 与此映射的比较器不兼容(或者,如果映射没有比较器,如果 toKey 未实现 Comparable),则抛出 ClassCastException
    • 抛出 ClassCastException。 li>
    • 如果 toKey 为 null 并且此映射使用自然排序,或其比较器不允许 null 键,则抛出 NullPointerException
    • 抛出 IllegalArgumentException>,如果这个map本身有一个限制范围,并且 toKey 位于该范围的边界之外。

    示例:

    在下面的示例中,java.util.TreeMap.headMap() 方法返回给定映射中包含小于(或等于,如果包含为 true)指定值的键的部分的视图。

    import java.util.*;
    
    public class MyClass {
      public static void main(String[] args) {
        //创建树形图
        TreeMap<Integer, String> Map1 = new TreeMap<Integer, String>();
    
        //填充Map1
        Map1.put(102, "John");
        Map1.put(103, "Marry");
        Map1.put(101, "Kim");
        Map1.put(104, "Jo");
        Map1.put(105, "Sam");
    
        //打印Map1
        System.out.println("Map1 contains: " + Map1); 
    
        //创建headmap(限制key直到key为103)
        NavigableMap<Integer, String> Map2 = new TreeMap<Integer, String>();
        Map2 = Map1.headMap(103, true); 
    
        //打印Map2
        System.out.println("Map2 contains: " + Map2);     
      }
    }
    

    上述代码的输出将是:

    Map1 contains: {101=Kim, 102=John, 103=Marry, 104=Jo, 105=Sam}
    Map2 contains: {101=Kim, 102=John, 103=Marry}