Интерфейс SortedSet
Интерфейс SortedSet представляет собой коллекцию,
которая не содержит повторяющихся элементов и автоматически
поддерживает их в отсортированном порядке. Наследуется от
интерфейса Set и добавляет методы для работы
с отсортированными данными. Элементы сортируются либо
по их естественному порядку, либо с помощью компаратора.
Импорт
import kotlin.collections.SortedSet
Синтаксис
interface SortedSet<E> : Set<E>
Создание SortedSet
Создадим отсортированное множество чисел:
val numbers: SortedSet<Int> = sortedSetOf(5, 2, 8, 1, 3)
println(numbers)
Результат выполнения кода:
[1, 2, 3, 5, 8]
Создание с компаратором
Создадим отсортированное множество строк в обратном порядке:
val names = sortedSetOf(String.CASE_INSENSITIVE_ORDER.reversed(), "John", "Alice", "Bob")
println(names)
Результат выполнения кода:
[John, Bob, Alice]
Методы SortedSet
Получим первый и последний элементы:
val numbers = sortedSetOf(5, 2, 8, 1, 3)
val first = numbers.first()
val last = numbers.last()
println("First: $first, Last: $last")
Результат выполнения кода:
First: 1, Last: 8
Получение подмножества
Получим подмножество элементов от 2 до 5:
val numbers = sortedSetOf(1, 2, 3, 5, 8)
val subSet = numbers.subSet(2, 5)
println(subSet)
Результат выполнения кода:
[2, 3]
Получение хвоста множества
Получим все элементы больше или равные 3:
val numbers = sortedSetOf(1, 2, 3, 5, 8)
val tailSet = numbers.tailSet(3)
println(tailSet)
Результат выполнения кода:
[3, 5, 8]
Получение головы множества
Получим все элементы меньше 5:
val numbers = sortedSetOf(1, 2, 3, 5, 8)
val headSet = numbers.headSet(5)
println(headSet)
Результат выполнения кода:
[1, 2, 3]
Получение компаратора
Проверим, используется ли компаратор:
val naturalSet = sortedSetOf(1, 2, 3)
val comparatorSet = sortedSetOf(reverseOrder<Int>(), 1, 2, 3)
println("Natural comparator: ${naturalSet.comparator()}")
println("Custom comparator: ${comparatorSet.comparator()}")
Результат выполнения кода:
Natural comparator: null
Custom comparator: java.util.Collections$ReverseComparator@...
Добавление и удаление элементов
Добавим и удалим элементы из отсортированного множества:
val numbers = sortedSetOf(1, 2, 3, 5, 8)
numbers.add(4)
numbers.remove(2)
println(numbers)
Результат выполнения кода:
[1, 3, 4, 5, 8]
Смотрите также
-
интерфейс
Set,
который представляет базовое множество элементов -
интерфейс
MutableSet,
который представляет изменяемое множество элементов -
интерфейс
NavigableSet,
который расширяет SortedSet методами навигации -
класс
TreeSet,
который является реализацией SortedSet