Функция sortedSetOf

Функция sortedSetOf создает объект типа TreeSet, который представляет собой отсортированное множество элементов. Элементы автоматически сортируются по их естественному порядку или с помощью переданного компаратора. Множество является неизменяемым (read-only), но базовый TreeSet может быть изменен если преобразовать его в mutable.

Импорт

kotlinimport kotlin.collections.sortedSetOf

Синтаксис

kotlinfun <T> sortedSetOf(): TreeSet<T>
kotlinfun <T> sortedSetOf(vararg elements: T): TreeSet<T>
kotlinfun <T> sortedSetOf(
  comparator: Comparator<in T>,
  vararg elements: T
): TreeSet<T>

Пример

Создадим пустое отсортированное множество:

kotlinval emptySet = sortedSetOf<String>()
println(emptySet)

Результат выполнения кода:

kotlin[]

Пример

Создадим отсортированное множество чисел:

kotlinval numbers = sortedSetOf(5, 2, 8, 1, 9, 3)
println(numbers)

Результат выполнения кода:

kotlin[1, 2, 3, 5, 8, 9]

Пример

Создадим отсортированное множество строк:

kotlinval strings = sortedSetOf("banana", "apple", "cherry")
println(strings)

Результат выполнения кода:

kotlin[apple, banana, cherry]

Пример

Создадим отсортированное множество с компаратором для сортировки по убыванию:

kotlinval descendingComparator = compareBy<Int> { -it }
val numbersDesc = sortedSetOf(descendingComparator, 5, 2, 8, 1)
println(numbersDesc)

Результат выполнения кода:

kotlin[8, 5, 2, 1]

Пример

Попытка добавить элемент в неизменяемое множество вызовет ошибку компиляции:

kotlinval set = sortedSetOf(1, 2, 3)
// set.add(4) // Ошибка компиляции: unresolved reference: add

Пример

Для создания изменяемого отсортированного множества используйте toMutableSet:

kotlinval mutableSet = sortedSetOf(1, 2, 3).toMutableSet()
mutableSet.add(4)
println(mutableSet)

Результат выполнения кода:

kotlin[1, 2, 3, 4]

Смотрите также

  • функцию setOf,
    которая создает обычное (неотсортированное) множество
  • функцию emptySet,
    которая создает пустое множество
  • функцию mutableSetOf,
    которая создает изменяемое множество
  • функцию hashSetOf,
    которая создает HashSet