Java 菜鳥(niǎo)教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊(duì)列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java NavigableMap 接口

在本教程中,我們將通過(guò)一個(gè)示例學(xué)習(xí)Java NavigableMap接口及其方法。

Java集合框架的NavigableMap接口提供了在映射條目之間導(dǎo)航的功能。

它被視為SortedMap的一種類(lèi)型。

實(shí)現(xiàn)NavigableMap的類(lèi)

由于NavigableMap是接口,因此無(wú)法從中創(chuàng)建對(duì)象。

為了使用NavigableMap接口的功能,我們需要使用實(shí)現(xiàn)NavigableMap的TreeMap類(lèi)。

Java TreeMap類(lèi)實(shí)現(xiàn)Java NavigableMap接口。

如何使用NavigableMap?

在Java中,我們必須導(dǎo)入java.util.NavigableMap包才能使用NavigableMap。 導(dǎo)入包后,將按照以下方法創(chuàng)建NavigableMap。

// NavigableMap由TreeMap類(lèi)實(shí)現(xiàn)
NavigableMap<Key, Value> numbers = new TreeMap<>();

 在上面的代碼中,我們創(chuàng)建了TreeMap類(lèi)的名為numbers的可導(dǎo)航映射。

這里,

  • Key - 用于關(guān)聯(lián)映射中每個(gè)元素(值)的唯一標(biāo)識(shí)符

  • Value - map中與鍵相關(guān)聯(lián)的元素

NavigableMap的方法

NavigableMap被視為SortedMap的一種類(lèi)型。這是因?yàn)镹avigableMap繼承了SortedMap接口。

因此,在NavigableMap中也可以使用所有SortedMap方法。了解如何在SortedMap中定義這些方法,請(qǐng)?jiān)L問(wèn)Java SortedMap。

但是,在NavigableMap中對(duì)SortedMap的某些方法(headMap(),tailMap()和subMap())進(jìn)行了不同的定義。

讓我們看看如何在中定義這些方法NavigableMap。

headMap(key,booleanValue)

headMap()方法返回與指定鍵(作為參數(shù)傳遞)之前的所有鍵相關(guān)聯(lián)的可導(dǎo)航映射的所有條目。

booleanValue是一個(gè)可選的參數(shù)。默認(rèn)值為false。

如果booleanValue為true,則該方法返回與指定鍵之前的所有那些鍵相關(guān)聯(lián)的所有條目key,包括與指定鍵相關(guān)聯(lián)的條目key。

tailMap(key,booleanValue)

tailMap()方法返回與指定鍵(key)(作為參數(shù)傳遞)之后的所有鍵相關(guān)聯(lián)的可導(dǎo)航映射的所有條目,包括與指定鍵(key)相關(guān)聯(lián)的條目。

booleanValue是一個(gè)可選的參數(shù)。默認(rèn)值為true。

如果booleanValue為false,則該方法將返回指定鍵(key)之后與那些鍵關(guān)聯(lián)的所有條目,而不包括與指定鍵(key)關(guān)聯(lián)的條目。

subMap(k1,bv1,k2,bv2)

subMap()方法返回與k1和k2之間的鍵相關(guān)的所有條目,包括與k1相關(guān)的條目。

bv1和bv2是可選參數(shù)。bv1的默認(rèn)值為true, bv2的默認(rèn)值為false。

如果bv1為false,則該方法返回與k1和k2之間的鍵關(guān)聯(lián)的所有條目,而不包括與k1關(guān)聯(lián)的條目。

如果bv2為true,則該方法返回與k1和k2之間的鍵關(guān)聯(lián)的所有條目,包括與k1關(guān)聯(lián)的條目。

其他方法

NavigableMap提供了可用于定位映射的條目的各種方法。

  • DescendingMap() - 反轉(zhuǎn)map中條目的順序

  • DescendingKeyMap() - 反轉(zhuǎn)map中鍵的順序

  • ceilingEntry() - 返回其鍵大于或等于指定鍵的所有條目中鍵最小的條目

  • ceilingKey() - 返回大于或等于指定鍵的那些鍵中的最小鍵

  • floorEntry() - 返回其鍵小于或等于指定鍵的所有條目中具有最大鍵的條目

  • floorKey() - 返回小于或等于指定鍵的那些鍵中的最大鍵

  • HigherEntry() - 返回其鍵大于指定鍵的所有條目中鍵最小的條目

  • HigherKey() - 返回大于指定鍵的那些鍵中的最小鍵

  • lowerEntry() - 返回其鍵小于指定鍵的所有條目中具有最大鍵的條目

  • lowerKey() - 返回小于指定鍵的那些鍵中的最大鍵

  • firstEntry() - 返回map的第一個(gè)條目(具有最小鍵的條目)

  • lastEntry() - 返回map的最后一個(gè)條目(具有最大鍵的條目)

  • pollFirstEntry() - 返回并刪除map的第一個(gè)條目

  • pollLastEntry() - 返回并刪除map的最后一個(gè)條目

TreeMap類(lèi)中NavigableMap的實(shí)現(xiàn)

import java.util.NavigableMap;
import java.util.TreeMap;

class Main {

    public static void main(String[] args) {
        //使用TreeMap創(chuàng)建NavigableMap
        NavigableMap<String, Integer> numbers = new TreeMap<>();

        //向map插入元素
        numbers.put("Two", 2);
        numbers.put("One", 1);
        numbers.put("Three", 3);
        System.out.println("NavigableMap: " + numbers);

        //訪問(wèn)映射的第一項(xiàng)
        System.out.println("第一項(xiàng): " + numbers.firstEntry());

        //訪問(wèn)地圖的最后一項(xiàng)
        System.out.println("最后一項(xiàng): " + numbers.lastEntry());

        //從映射中刪除第一項(xiàng)
        System.out.println("刪除第一項(xiàng): " + numbers.pollFirstEntry());

        //從地圖上刪除最后一項(xiàng)
        System.out.println("刪除最后一項(xiàng): " + numbers.pollLastEntry());
    }
}

輸出結(jié)果

NavigableMap: {One=1, Three=3, Two=2}
第一項(xiàng): One=1
最后一項(xiàng): Two=2
刪除第一項(xiàng): One=1
刪除最后一項(xiàng): Two=2

要了解更多信息TreeMap,請(qǐng)?jiān)L問(wèn)Java TreeMap。

現(xiàn)在我們知道了NavigableMap接口,我們將在下一個(gè)教程中使用TreeMap類(lèi),詳細(xì)了解其實(shí)現(xiàn)。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清