Упорядоченное множество в Java
Класс TreeSet реализует SortedSet на
красно-черном дереве. Элементы не повторяются, а
обход идет по возрастанию (или по вашему
Comparator). Нужен тип, который умеет
сравниваться: Comparable или явный компаратор
в конструкторе.
Поиск, добавление и удаление для одного элемента
стоят порядка O(log n). Это удобнее полной
сортировки списка, когда набор часто меняется.
Множество кодов городов после вставки в произвольном порядке:
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
TreeSet<String> codes = new TreeSet<>();
codes.add("msk");
codes.add("spb");
codes.add("kzn");
System.out.println(codes);
System.out.println(codes.first());
System.out.println(codes.last());
}
}
Методы first и last берут крайние
значения без полного копирования в список. Подмножества
по диапазону дают headSet, tailSet и
subSet.
Создайте TreeSet с числами 15,
3, 9 и выведите наименьший и
наибольший элемент.