English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Java

Java управление потоком

Java массив

Java направленный объект (I)

Java направленный объект (II)

Java направленный объект (III)

Обработка исключений Java

Java список (List)

Java Queue (очередь)

Java Map съедение

Java Set съедение

Java ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

Java NavigableSet интерфейс

В этом руководстве мы будем изучать Java NavigableSet интерфейс и его методы через пример.

Интерфейс NavigableSet Java Collections framework предоставляет функциональность навигации между элементами集合а.

Он рассматривается какВид SortedSet.

Классы, реализующие NavigableSet

Для использования функций интерфейса NavigableSet нам нужно использовать класс, реализующий NavigableSet, через TreeSet.

Как использовать NavigableSet?

Для использования функций интерфейса NavigableSet нам нужно использовать класс TreeSet, реализующий NavigableSet.

// Реализация SortedSet класса TreeSet
NavigableSet<String> numbers = new TreeSet<>();

Здесь мы создаем навигируемое множество под названием numbers из класса TreeSet.

Методы NavigableSet

NavigableSet рассматривается как вид SortedSet. Это связано с тем, что NavigableSet наследует интерфейс SortedSet.

Таким образом, все методы SortedSet также доступны в NavigableSet. Для получения информации о методах обратитесь вJava SortedSet.

Однако, в NavigableSet,某些SortedSet методы (headSet(), tailSet() и subSet()) имеют иное определение.

Давайте посмотрим, как можно определить эти методы в NavigableSet.

headSet(element,booleanValue)

Метод headSet() возвращает все элементы до указанного элемента в навигируемом множестве (переданного в качестве параметра).

Параметр booleanValue является опциональным. Значение по умолчанию false.

Если значение booleanValue равно true, то该方法 возвращает все элементы до указанного элемента, включая указанный элемент.

tailSet(element,booleanValue)

Метод tailSet() возвращает все элементы после указанного элемента (переданного в качестве параметра) в навигируемом множестве, включая указанный элемент.

Параметр booleanValue является опциональным. Значение по умолчанию true.

Если значение booleanValue равно false, то该方法 возвращает все элементы после указанного элемента, включая указанный элемент.

subSet(e1, bv1, e2, bv2)

Метод 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() - возвращает и удаляет последний элемент из набора

Реализация NavigableSet в классе TreeSet

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 класс для изучения его реализации.