Интерфейс 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
Please log in or register to have a possibility to add comment.