Java 菜鳥教程

Java 流程控制

Java 數(shù)組

Java 面向?qū)ο?I)

Java 面向?qū)ο?II)

Java 面向?qū)ο?III)

Java 異常處理

Java 列表(List)

Java Queue(隊列)

Java Map集合

Java Set集合

Java 輸入輸出(I/O)

Java Reader/Writer

Java 其他主題

Java NavigableSet 接口

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

Java Collections框架的NavigableSet接口提供了在集合元素之間導(dǎo)航的功能。

它被視為SortedSet的一種。

實現(xiàn)NavigableSet的類

為了使用NavigableSet接口的功能,我們需要使用TreeSet實現(xiàn)的類NavigableSet。

TreeSet類實現(xiàn)NavigableSet接口。

如何使用NavigableSet?

為了使用NavigableSet接口的功能,我們需要使用實現(xiàn)NavigableSet的TreeSet類。

// TreeSet類的SortedSet實現(xiàn)
NavigableSet<String> numbers = new TreeSet<>();

在這里,我們創(chuàng)建了TreeSet類的一個名為numbers的可導(dǎo)航集。

NavigableSet的方法

NavigableSet被視為SortedSet的一種。 這是因為NavigableSet繼承了SortedSet接口。

因此,所有的SortedSet方法在NavigableSet中也可用。 了解這些方法,請訪問Java SortedSet。

但是,在NavigableSet中,對SortedSet的某些方法(headSet(),tailSet()和subSet())進(jìn)行了不同的定義。

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

headSet(element,booleanValue)

headSet()方法返回指定元素之前的可導(dǎo)航集合的所有元素(作為參數(shù)傳遞)。

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

如果booleanValue的值為true,則該方法返回指定元素之前的所有元素,包括指定元素。

tailSet(element,booleanValue)

tailSet()返回指定元素(作為參數(shù)傳遞)之后的可導(dǎo)航集的所有元素,包括指定元素。

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

如果booleanValue為false,則該方法返回指定元素之后的所有元素,而不包括指定元素。

subSet(e1,bv1,e2,bv2)

subSet()方法返回e1和e2之間的所有元素,包括e1。

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

如果將false作為bv1傳遞,則該方法返回e1和e2之間的所有元素,而不包括e1。

如果將true作為bv2傳遞,則該方法返回e1和e2之間的所有元素,包括e1。

NavigableSet提供了可用于在其元素導(dǎo)航的各種方法。

  • DescendingSet() - 反轉(zhuǎn)集合中元素的順序

  • DescendingIterator() - 返回一個迭代器,該迭代器可用于以相反的順序迭代集合

  • ceiling() - 返回大于或等于指定元素的那些元素中的最小元素

  • floor() - 返回小于或等于指定元素的那些元素中最大的元素

  • Higher() - 返回大于指定元素的那些元素中的最小元素

  • lower() - 返回小于指定元素的那些元素中最大的元素

  • pollFirst() - 返回并從集合中刪除第一個元素

  • pollLast() - 返回并從集合中刪除最后一個元素

TreeSet類中NavigableSet的實現(xiàn)

import java.util.NavigableSet;
import java.util.TreeSet;

class Main {

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

        //向集合中插入元素
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("NavigableSet: " + numbers);

        //訪問第一個元素
        int firstElement = numbers.first();
        System.out.println("第一個元素: " + firstElement);

        //訪問最后一個元素
        int lastElement = numbers.last();
        System.out.println("最后一個元素: " + lastElement);

        //刪除第一個元素
        int number1 = numbers.pollFirst();
        System.out.println("刪除第一個元素: " + number1);

        //刪除最后一個元素
        int number2 = numbers.pollLast();
        System.out.println("刪除最后一個元素: " + number2);

    }
}

輸出結(jié)果

NavigableSet: [1, 2, 3]
第一個元素: 1
最后一個元素: 3
刪除第一個元素: 1
刪除最后一個元素: 3

要了解更多信息TreeSet,請訪問Java TreeSet

既然我們已經(jīng)知道了NavigableSet接口,我們將使用TreeSet類學(xué)習(xí)其實現(xiàn)。

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