• Tags
  •         
  • 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类与示例

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