• Tags         
  • 2018-08-14  09:39:47        
  • 119 °C    

    NavigableMap是SortedMap的扩展,它提供了方便的导航方法,如lowerKey,floorKey,ceilingKey和higherKey,以及这些流行的导航方法,它还提供了从Java中现有Map创建Sub Map的方法,例如headMap,其键小于指定键,tailMap,其键大于指定键,subMap严格包含介于toKey和fromKey之间的键。

    实现NavigableMap的示例类是TreeMap

    NavigableMap的方法

    1. lowerKey(Object key):返回严格小于给定键的最大键,或者如果没有这样的键。
    2. floorKey(Object key):返回小于或等于给定键的最大键,或者如果没有这样的键。
    3. ceilingKey(Object key):返回大于或等于给定键的最小键,或者如果没有这样的键。
    4. higherKey(Object key):返回严格大于给定键的最小键,或者如果没有这样的键。
    5. descendingMap():返回此映射中包含的映射的逆序视图。
    6. headMap(object toKey,boolean inclusive) :返回此映射部分的视图,其键小于(或等于,如果inclusive为true)toKey。
    7. subMap(object fromKey,boolean fromInclusive,object toKey,boolean toInclusive):返回此映射部分的视图,其键的范围从fromKey到toKey。
    8. tailMap(object fromKey,boolean inclusive) :返回此映射部分的视图,其键大于(或等于,如果inclusive为true)fromKey。
    // Java program to demonstrate NavigableMap
    import java.util.NavigableMap;
    import java.util.TreeMap;
    public class Example
    {
    public static void main(String[] args)
    {
    NavigableMap<String, Integer> nm =
    new TreeMap<String, Integer>();
    nm.put("C", 888);
    nm.put("Y", 999);
    nm.put("A", 444);
    nm.put("T", 555);
    nm.put("B", 666);
    nm.put("A", 555);
    System.out.printf("Descending Set  : %s%n",
    nm.descendingKeySet());
    System.out.printf("Floor Entry  : %s%n",
    nm.floorEntry("L"));
    System.out.printf("First Entry  : %s%n",
    nm.firstEntry());
    System.out.printf("Last Key : %s%n",
    nm.lastKey());
    System.out.printf("First Key : %s%n",
    nm.firstKey());
    System.out.printf("Original Map : %s%n", nm);
    System.out.printf("Reverse Map : %s%n",
    nm.descendingMap());
    }
    }
    

    输出:

    Descending Set : [Y, T, C, B, A]
    Floor Entry : C=888
    First Entry : A=555
    Last Key : Y
    First Key : A
    Original Map : {A=555, B=666, C=888, T=555, Y=999}
    Reverse Map : {Y=999, T=555, C=888, B=666, A=555}
    

    Java中的NavigableMap接口与示例

     
    转载请保留页面地址:https://www.breakyizhan.com/java/5376.html