Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

TreeSet

Множество, которое хранит элементы в отсортированном порядке.

Доступно с: Java 1.2

Синтаксис

public class TreeSet<E> implements NavigableSet<E>

Примеры

Элементы всегда отсортированы:

void main() {
    Set<Integer> scores = new TreeSet<>(List.of(42, 7, 19, 7, 88));
    IO.println(scores);
}

Результат:

[7, 19, 42, 88]

Навигация: ближайшие значения и диапазоны:

void main() {
    TreeSet<Integer> set = new TreeSet<>(List.of(10, 20, 30, 40));
    IO.println(set.first() + " " + set.last());
    IO.println(set.ceiling(25));
    IO.println(set.floor(25));
    IO.println(set.headSet(30));
}

Результат:

10 40
30
20
[10, 20]

Примечания

Операции выполняются за логарифмическое время — медленнее HashSet, но порядок всегда отсортирован. Элементы должны реализовывать Comparable, либо в конструктор передаётся Comparator: new TreeSet<>(Comparator.reverseOrder()). Элементы, которые компаратор считает равными, считаются повтором.

См. также

  • HashSet — Множество без повторов на основе хеш-таблицы; порядок не гарантирован.
  • LinkedHashSet — Множество, которое помнит порядок добавления элементов.
  • TreeMap — Словарь, ключи которого всегда отсортированы.
  • Comparator.comparing() — Создаёт компаратор, который сравнивает объекты по одному полю.

Вопросы и ответы по теме

В учебнике

  • Множества: Set — Множества в Java: HashSet без повторов, LinkedHashSet и TreeSet с порядком, объединение и пересечение множеств.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.