Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Java.SE.06.Generic and collections_conspect.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
144.62 Кб
Скачать

Интерфейс NavigableSet

Интерфейс NavigableSet<E>, появившийся в Java SE 6, расширяет интерфейс SortedSet и добавляют возможность перемещения по отсортированной коллекции. Класс TreeSet<E> был модернизирован для поддержки этого интерфейса.

Методы интерфейса NavigableSet<E>:

Следующие методы возвращают итераторы коллекции в порядке возрастания и убывания элементов соответственно.

Iterator iterator() возвращает итератор в порядке возрастания значений элементов коллекции;

Iterator descendingIterator() возвращает итератор в порядке убывания значений элементов коллекции;

NavigableSet descendingSet() возвращает множество в порядке убывания значений элементов коллекции;

E lower(E e)возвращает меньший по значению элемент для вызывающего элемента;

E floor(E e)возвращает меньший или равный по значению элемент для вызывающего элемента;

E higher(E e)возвращает больший по значению элемент для вызывающего элемента;

E ceiling(E e)возвращает больший или равный по значению элемент для вызывающего элемента;

E pollFirst()возвращает и удаляет первый элемент коллекции;

E pollLast() возвращает и удаляет последний элемент коллекции;

SortedSet<E> subSet(E fromElement, E toElement) –возвращает список элементов, находящихся между fromElement и toElement, причем последний не включается;

NavigableSet subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive) – ;

И, наконец, методы, позволяющие получить подмножество элементов. Параметры fromElement и toElement ограничивают подмножество снизу и сверху, а флаги fromInclusive и toInclusive показывают, нужно ли в результирующий набор включать граничные элементы. headSet возвращает элементы с начала набора до указанного элемента, а tailSet - от указанного элемента до конца набора. Перегруженные методы без логических параметров включают в выходной набор первый элемент интервала, но исключают последний.

NavigableSet headSet(E toElement, boolean inclusive);

NavigableSet tailSet(E fromElement, boolean inclusive);

SortedSet subSet(E fromElement, E toElement);

SortedSet headSet(E toElement);

SortedSet tailSet(E fromElement);

Метод. Методы headSet(E element) и tailSet(E element, boolean inclusive) возвращают то множество элементов, которое меньше либо больше element соответственно. Если inclusive равно true, то элемент включается в найденное множество и не включается в противном случае.

В следующем примере показано использование интерфейса NavigableSet.

/* # 13 : иcпользование множества NavigableSet: NavigableSetTest.java */

package by.bsu.chapt10;

import java.util.*;

public class NavigableSetTest {

public static void main(String[] args) {

HashSet<String> city = new HashSet<String>();

city.add("Minsk");

city.add("Mosсow");

city.add("Polotsk");

city.add("Brest");

NavigableSet<String> ns = new TreeSet<String>(city);

System.out.println("All: " + ns);

System.out.println("Between Minsk and Polotsk: "

+ ns.subSet("Minsk","Polotsk"));

System.out.println("Before Minsk: "

+ ns.headSet("Minsk"));

System.out.println("After Minsk: "

+ ns.tailSet("Minsk",false));

}

}

В результате на консоль будет выведено:

All: [Brest, Minsk, Mosсow, Polotsk]

Between Minsk and Polotsk: [Minsk, Mosсow]

Before Minsk: [Brest]

After Minsk: [Mosсow, Polotsk]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]