Функция toSortedSet

Функция toSortedSet преобразует коллекцию в отсортированное множество типа TreeSet. При этом удаляются все дубликаты элементов, а оставшиеся элементы сортируются в естественном порядке. Функция может принимать компаратор для определения пользовательского порядка сортировки.

Импорт

kotlinimport kotlin.collections.toSortedSet

Синтаксис

kotlinfun <T : Comparable<T>> Iterable<T>.toSortedSet(): TreeSet<T>
kotlinfun <T> Iterable<T>.toSortedSet(comparator: Comparator<in T>): TreeSet<T>
kotlinfun <T : Comparable<T>> Array<T>.toSortedSet(): TreeSet<T>
kotlinfun <T> Array<T>.toSortedSet(comparator: Comparator<in T>): TreeSet<T>

Пример

Преобразуем список чисел в отсортированное множество:

kotlinval numbers = listOf(5, 2, 8, 2, 1, 5, 3)
val sortedSet = numbers.toSortedSet()
println(sortedSet)

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

kotlinTreeSet [1, 2, 3, 5, 8]

Пример

Преобразуем массив символов в отсортированное множество:

kotlinval chars = arrayOf('d', 'a', 'c', 'b', 'a', 'e')
val sortedChars = chars.toSortedSet()
println(sortedChars)

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

kotlinTreeSet ['a', 'b', 'c', 'd', 'e']

Пример

Использование компаратора для обратной сортировки:

kotlinval numbers = listOf(5, 2, 8, 1, 3)
val reverseSorted = numbers.toSortedSet(compareByDescending { it })
println(reverseSorted)

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

kotlinTreeSet [8, 5, 3, 2, 1]

Пример

Работа с пользовательскими объектами и компаратором:

kotlindata class Person(val name: String, val age: Int)

val people = listOf(
  Person("John", 25),
  Person("Anna", 30),
  Person("John", 25),
  Person("Mike", 22)
)

val sortedByAge = people.toSortedSet(compareBy { it.age })
println(sortedByAge.map { it.age })

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

kotlinList [22, 25, 30]

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

  • функцию toSet,
    которая преобразует коллекцию в обычное множество
  • функцию toMutableSet,
    которая преобразует коллекцию в изменяемое множество
  • функцию toHashSet,
    которая преобразует коллекцию в HashSet
  • функцию toList,
    которая преобразует коллекцию в список