Интерфейс SortedSet и класс TreeSet
1. Интерфейс SortedSet
Интерфейс SortedSet языка Java, расширяющий интерфейс Set, описывает упорядоченное множество, отсортированное в возрастающем порядке или по порядку, заданному реализацией интерфейса Comparator.
Методы интерфейса SortedSet:
Comparator<? super E> comparator()- возвращает компаратор сортированного множества. Если для множества применяется естественный порядок сортировки, возвращаетсяnull.E first()- возвращает первый элемент вызывающего сортированного множества.E last()- возвращает последний элемент вызывающего сортированного множества.SortedSet headSet(E toElement)- возвращаетSortedSet, содержащий элементы из вызывающего множества, которые предшествуютend.SortedSet subSet(E fromElement, E toElement)- возвращаетSortedSet, содержащий элементы из вызывающего множества, находящиеся междуstartиend-1.SortedSet tailSet(E fromElement)- возвращаетSortedSet, содержащий элементы из вызывающего множества, которые следуют заend.
Рассмотрим пример использования методов subSet(), headSet(), tailSet(), first(), last():
import java.util.SortedSet;
import java.util.TreeSet;
public class TreeSetExample2 {
public static void main(String[] args) {
SortedSet<String> set = new TreeSet<>();
set.add("Харьков");
set.add("Киев");
set.add("Львов");
set.add("Кременчуг");
set.add("Харьков");
System.out.println(set);
SortedSet<String> subSet = set.subSet("Киев", "Львов");
System.out.println("SubSet: " + subSet);
System.out.println("HeadSet: " + set.headSet("Львов"));
System.out.println("TailSet: " + set.tailSet("Львов"));
System.out.println("Первый элемент: " + set.first());
System.out.println("Последний элемент: " + set.last());
}
} Результат выполнения программы:
[Киев, Кременчуг, Львов, Харьков]
SubSet: [Киев, Кременчуг]
HeadSet: [Киев, Кременчуг]
TailSet: [Львов, Харьков]
Первый элемент: Киев
Последний элемент: Харьков 2. Класс TreeSet
Класс TreeSet реализует интерфейс NavigableSet, который поддерживает элементы в отсортированном по возрастанию порядке. Объекты сохраняются в отсортированном порядке по возрастанию.
Обработка операций удаления и вставки объектов происходит медленнее O(log (n)), чем в хэш-множествах, но быстрее, чем в списках.
Рассмотрим пример использование класса TreeSet:
import java.util.SortedSet;
import java.util.TreeSet;
public class TreeSetExample1 {
public static void main(String[] args) {
SortedSet<String> set = new TreeSet<>();
set.add("Харьков");
set.add("Киев");
set.add("Львов");
set.add("Кременчуг");
set.add("Харьков");
System.out.println(set);
}
} Обратите внимание, что элементы были добавлены в одном порядке, но при выводе на консоль, мы видим, что элементы отсортированы:
[Киев, Кременчуг, Львов, Харьков] Конструкторы класса TreeSet:
TreeSet()TreeSet(Collection<? extends Е> сollection)TreeSet(Comparator<? super Е> соmрarator)TreeSet(SortedSet<E> sortedSet)
Курс 'Java для начинающих' на Udemy
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.