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
扫描二维码添加微信 
  • ,每次淘宝领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘50元优惠券!添加微信后回复机械键盘即可领取!
    支持我们,就用微信淘宝!