Интерфейс NavigableSet
Интерфейс NavigableSet появился в Java SE 6. Он расширяет SortedSet и добавляет методы для более удобного поиска по коллекции:
Е ceiling(E obj)
- ищет в наборе наименьший элементе
, для которого истинное >= obj
. Если такой элемент найден, он возвращается. В противном случае возвращаетсяnull
.Е floor(Е obj)
- ищет в наборе наибольший элементе
, для которого истинное <= obj
. Если такой элемент найден, он возвращается. В противном случае возвращаетсяnull
.Е higher(Е obj)
- ищет в наборе наибольший элементе
, для которого истинное > obj
. Если такой элемент найден, он возвращается. В противном случае возвращаетсяnull
.Е lower(Е obj)
- ищет в наборе наименьший элементе
, для которого истинное < obj
. Если такой элемент найден, он возвращается. В противном случае возвращаетсяnull
.NavigableSet headSet(Е upperBound, boolean incl)
- возвращаетNavigableSet
, включающий все элементы вызывающего набора, меньшиеupperBound
. Результирующий набор поддерживается вызывающим набором (по другому это называется backed-collection).NavigableSet subSet(Е lowerBound, boolean lowlncl, Е upperBound, boolean highIncl)
- возвращаетNavigableSet
, включающий все элементы вызывающего набора, которые большеlowerBound
и меньшеupperBound
. Еслиlowlncl
равноtrue
, то элемент, равныйlowerBound
, включается. Еслиhighlncl
равноtrue
, также включается элемент, равныйupperBound
.NavigableSet tailSet(Е fromElement, boolean inclusive)
- возвращаетNavigableSet
, включающий все элементы вызывающего набора, которые больше (или равны, еслиinclusive
равноtrue
) чемfromElement
. Результирующий набор поддерживается вызывающим набором (по другому это называется backed-collection).E pollLast()
- возвращает последний элемент, удаляя его в процессе. Поскольку набор сортирован, это будет элемент с наибольшим значением. Возвращаетnull
в случае пустого набора.Е pollFirst()
- возвращает первый элемент, удаляя его в процессе. Поскольку набор сортирован, это будет элемент с наименьшим значением. Возвращаетnull
в случае пустого набора.Iterator descendingIterator()
- возвращает итератор, перемещающийся от большего к меньшему, другими словами, обратный итератор.NavigableSet descendingSet()
- возвращаетNavigableSet
, представляющий собой обратную версию вызывающего набора. Результирующий набор поддерживается вызывающим набором.
Класс, реализующие интерфейс NavigableSet - это TreeSet.
Рассмотрим пример использования интерфейса NavigableSet:
import java.util.NavigableSet;
import java.util.SortedSet;
import java.util.TreeSet;
public class Ferry {
public static void main(String[] args) {
NavigableSet<Integer> times = new TreeSet<>();
times.add(1205);
times.add(1505);
times.add(1545);
times.add(1830);
times.add(2010);
times.add(2100);
// Java 5 версия
System.out.println("Java 5");
SortedSet<Integer> subset = times.headSet(1600);
System.out.println("Последний паром перед 16:00 - " + subset.last());
SortedSet<Integer> tailSet = times.tailSet(2000);
System.out.println("Первый паром после 20:00 - " + tailSet.first());
System.out.println();
// Java 6 версия использует новые методы lower() и higher()
System.out.println("Java 6");
System.out.println("Последний паром перед 16:00 - " + times.lower(1600));
System.out.println("Первый паром после 20:00 - " + times.higher(2000));
}
}
Курс 'Java для начинающих' на Udemy
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.