Java中的NavigableSet类与示例

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

NavigableSet表示Java Collection Framework中的可导航集。NavigableSet接口继承自SortedSet接口。它的行为类似于SortedSet,除了SortedSet的排序机制之外我们还有导航方法。例如,与SortedSet中定义的顺序相比,NavigableSet接口可以以相反的顺序导航集合。

实现此接口的类是TreeSet和 ConcurrentSkipListSet

NavigableSet的方法(不在SortedSet中):

  1. Lower(E e):返回此set中小于给定元素的最大元素,如果没有这样的元素,则返回NULL。
  2. Floor(E e):返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回NULL。
  3. Ceiling(E e):返回此set中大于或等于给定元素的最小元素,如果没有这样的元素,则返回NULL。
  4. Higher(E e):返回此set中大于给定元素的最小元素,如果没有这样的元素,则返回NULL。
  5. pollFirst():检索并删除第一个最小元素。如果没有这样的元素,则返回null。
  6. pollLast():检索并删除最后一个最高元素。如果没有这样的元素,则返回null。
// A Java program to demonstrate working of SortedSet
import java.util.NavigableSet;
import java.util.TreeSet;

public class hashset 
{
    public static void main(String[] args) 
    {
        NavigableSet<Integer> ns = new TreeSet<>();
        ns.add(0);
        ns.add(1);
        ns.add(2);
        ns.add(3);
        ns.add(4);
        ns.add(5);
        ns.add(6);

        // Get a reverse view of the navigable set
        NavigableSet<Integer> reverseNs = ns.descendingSet();

        // Print the normal and reverse views
        System.out.println("Normal order: " + ns);
        System.out.println("Reverse order: " + reverseNs);

        NavigableSet<Integer> threeOrMore = ns.tailSet(3, true);
        System.out.println("3 or  more:  " + threeOrMore);
        System.out.println("lower(3): " + ns.lower(3));
        System.out.println("floor(3): " + ns.floor(3));
        System.out.println("higher(3): " + ns.higher(3));
        System.out.println("ceiling(3): " + ns.ceiling(3));

        System.out.println("pollFirst(): " + ns.pollFirst());
        System.out.println("Navigable Set:  " + ns);

        System.out.println("pollLast(): " + ns.pollLast());
        System.out.println("Navigable Set:  " + ns);

        System.out.println("pollFirst(): " + ns.pollFirst());
        System.out.println("Navigable Set:  " + ns);

        System.out.println("pollFirst(): " + ns.pollFirst());
        System.out.println("Navigable Set:  " + ns);

        System.out.println("pollFirst(): " + ns.pollFirst());
        System.out.println("Navigable Set:  " + ns);

        System.out.println("pollFirst(): " + ns.pollFirst());
        System.out.println("pollLast(): " + ns.pollLast());
    }
}

输出:

Normal order: [0, 1, 2, 3, 4, 5, 6]
Reverse order: [6, 5, 4, 3, 2, 1, 0]
3 or  more:  [3, 4, 5, 6]
lower(3): 2
floor(3): 3
higher(3): 4
ceiling(3): 3
pollFirst(): 0
Navigable Set:  [1, 2, 3, 4, 5, 6]
pollLast(): 6

Java中的NavigableSet类与示例

  •   本文标题:Java中的NavigableSet类与示例 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/5347.html
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读