English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом руководстве мы будем изучать Java NavigableSet интерфейс и его методы через пример.
Интерфейс NavigableSet Java Collections framework предоставляет функциональность навигации между элементами集合а.
Он рассматривается какВид SortedSet.
Для использования функций интерфейса NavigableSet нам нужно использовать класс, реализующий NavigableSet, через TreeSet.
Для использования функций интерфейса NavigableSet нам нужно использовать класс TreeSet, реализующий NavigableSet.
// Реализация SortedSet класса TreeSet NavigableSet<String> numbers = new TreeSet<>();
Здесь мы создаем навигируемое множество под названием numbers из класса TreeSet.
NavigableSet рассматривается как вид SortedSet. Это связано с тем, что NavigableSet наследует интерфейс SortedSet.
Таким образом, все методы SortedSet также доступны в NavigableSet. Для получения информации о методах обратитесь вJava SortedSet.
Однако, в NavigableSet,某些SortedSet методы (headSet(), tailSet() и subSet()) имеют иное определение.
Давайте посмотрим, как можно определить эти методы в NavigableSet.
Метод headSet() возвращает все элементы до указанного элемента в навигируемом множестве (переданного в качестве параметра).
Параметр booleanValue является опциональным. Значение по умолчанию false.
Если значение booleanValue равно true, то该方法 возвращает все элементы до указанного элемента, включая указанный элемент.
Метод tailSet() возвращает все элементы после указанного элемента (переданного в качестве параметра) в навигируемом множестве, включая указанный элемент.
Параметр booleanValue является опциональным. Значение по умолчанию true.
Если значение booleanValue равно false, то该方法 возвращает все элементы после указанного элемента, включая указанный элемент.
Метод subSet() возвращает все элементы между e1 и e2, включая e1.
bv1 и bv2 являются опциональными параметрами.bv1 по умолчанию true, bv2 по умолчанию false.
Если передать false в bv1, то该方法 возвращает все элементы между e1 и e2, не включая e1.
Если передать true в bv2, то该方法 возвращает все элементы между e1 и e2, включая e1.
NavigableSet предоставляет различные методы для навигации по элементам.
DescendingSet() - обратный порядок элементов в наборе
DescendingIterator() - возвращает итератор, позволяющий итерировать набор в обратном порядке
ceiling() - возвращает наименьший элемент, не меньший чем заданного
floor() - возвращает наибольший элемент, не превышающий заданного
Higher() - возвращает наименьший элемент, больший чем заданный
lower() - возвращает наибольший элемент, меньший чем заданный
pollFirst() - возвращает и удаляет первый элемент из набора
pollLast() - возвращает и удаляет последний элемент из набора
import java.util.NavigableSet; import java.util.TreeSet; class Main { public static void main(String[] args) { // использование TreeSet для создания 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); } }
результат вывода
NavigableSet: [1, 2, 3] первый элемент: 1 последний элемент: 3 удалить первый элемент: 1 удалить последний элемент: 3
Чтобы узнать больше о TreeSet, пожалуйста, перейдите наJava TreeSet.
既然我们已经知道了NavigableSet интерфейс, мы будем использовать TreeSet класс для изучения его реализации.