📜  Java中的 NavigableSet 和示例(1)

📅  最后修改于: 2023-12-03 14:42:50.368000             🧑  作者: Mango

Java中的 NavigableSet 和示例

NavigableSet 接口继承自 SortedSet 接口,在 Java 集合框架中属于一种有序的 Set。它提供了一系列有用的方法,例如查找元素、获取子集、查找最大和最小元素、返回可从集合中所提取元素的迭代器等。NavigableSet 还提供了一些扩展的方法,例如返回最接近给定元素的元素、返回排在给定元素之前的所有元素等。

NavigableSet 接口常用方法

以下是 NavigableSet 接口中常用的方法:

  • lower(E e):返回小于给定元素的最大元素,如果不存在则返回 null。
  • floor(E e):返回小于等于给定元素的最大元素,如果不存在则返回 null。
  • ceiling(E e):返回大于等于给定元素的最小元素,如果不存在则返回 null。
  • higher(E e):返回大于给定元素的最小元素,如果不存在则返回 null。
  • pollFirst():返回并移除集合中的第一个元素。
  • pollLast():返回并移除集合中的最后一个元素。
  • descendingSet():返回一个与该集合有相反顺序的 NavigableSet。
NavigableSet 示例程序
import java.util.NavigableSet;
import java.util.TreeSet;

public class NavigableSetExample {
    public static void main(String[] args) {
        NavigableSet<Integer> set = new TreeSet<>();
        set.add(1);
        set.add(3);
        set.add(6);
        set.add(9);
        set.add(12);
        set.add(15);

        // lower
        System.out.println(set.lower(7)); // 6
        System.out.println(set.lower(1)); // null

        // floor
        System.out.println(set.floor(7)); // 6
        System.out.println(set.floor(1)); // 1

        // ceiling
        System.out.println(set.ceiling(7)); // 9
        System.out.println(set.ceiling(15)); // 15

        // higher
        System.out.println(set.higher(7)); // 9
        System.out.println(set.higher(15)); // null

        // pollFirst
        System.out.println(set.pollFirst()); // 1
        System.out.println(set); // [3, 6, 9, 12, 15]

        // pollLast
        System.out.println(set.pollLast()); // 15
        System.out.println(set); // [3, 6, 9, 12]

        // descendingSet
        NavigableSet<Integer> descendingSet = set.descendingSet();
        System.out.println(descendingSet); // [12, 9, 6, 3]
    }
}

该程序演示了 NavigableSet 常用方法的使用。首先创建一个 NavigableSet 对象并添加一些元素,然后演示了 lower、floor、ceiling、higher、pollFirst、pollLast、descendingSet 这几个方法的使用。