Функция toSortedSet
Функция toSortedSet преобразует коллекцию
в отсортированное множество типа TreeSet.
При этом удаляются все дубликаты элементов,
а оставшиеся элементы сортируются в естественном
порядке. Функция может принимать компаратор
для определения пользовательского порядка сортировки.
Импорт
import kotlin.collections.toSortedSet
Синтаксис
fun <T : Comparable<T>> Iterable<T>.toSortedSet(): TreeSet<T>
fun <T> Iterable<T>.toSortedSet(comparator: Comparator<in T>): TreeSet<T>
fun <T : Comparable<T>> Array<T>.toSortedSet(): TreeSet<T>
fun <T> Array<T>.toSortedSet(comparator: Comparator<in T>): TreeSet<T>
Пример
Преобразуем список чисел в отсортированное множество:
val numbers = listOf(5, 2, 8, 2, 1, 5, 3)
val sortedSet = numbers.toSortedSet()
println(sortedSet)
Результат выполнения кода:
TreeSet [1, 2, 3, 5, 8]
Пример
Преобразуем массив символов в отсортированное множество:
val chars = arrayOf('d', 'a', 'c', 'b', 'a', 'e')
val sortedChars = chars.toSortedSet()
println(sortedChars)
Результат выполнения кода:
TreeSet ['a', 'b', 'c', 'd', 'e']
Пример
Использование компаратора для обратной сортировки:
val numbers = listOf(5, 2, 8, 1, 3)
val reverseSorted = numbers.toSortedSet(compareByDescending { it })
println(reverseSorted)
Результат выполнения кода:
TreeSet [8, 5, 3, 2, 1]
Пример
Работа с пользовательскими объектами и компаратором:
data 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 })
Результат выполнения кода:
List [22, 25, 30]
Смотрите также
-
функцию
toSet,
которая преобразует коллекцию в обычное множество -
функцию
toMutableSet,
которая преобразует коллекцию в изменяемое множество -
функцию
toHashSet,
которая преобразует коллекцию в HashSet -
функцию
toList,
которая преобразует коллекцию в список