В чем разница между sortedDescending () и sortedByDescending ()? - PullRequest
1 голос
/ 13 июня 2019

В этом блоке кода:

fun getList(): List<Int> {
    return arrayListOf(1, 5, 2).sortedDescending()
}

Почему я не могу вместо этого сделать

fun getList(): List<Int> {
    return arrayListOf(1, 5, 2).sortedByDescending()
}

?

Если я применяю метод неправильно кчто ArrayList, как будет выглядеть правильное использование sortedByDescending()?

Ответы [ 2 ]

2 голосов
/ 13 июня 2019

Самый простой способ думать о том, что sortDescending() применяется к ArrayList элементов, таких как целые числа или строки , но sortByDescending() применяется к ArrayList элементов, которые имеют свойства, которыемы хотим отсортировать по .

Пример. В этом блоке кода вы просто сортируете список целых чисел.

fun getList(): List<Int> {
    return arrayListOf(1, 5, 2).sortedDescending()
}

В следующей строке кода sortByDescending() требует, чтобы мы передалиаргумент , указывающий свойство, по которому мы хотим отсортировать.

fun getList(): List<Object> {
    val list = ArrayList<CustomObject>()
    list.add(CustomObject("Z"))
    list.add(CustomObject("A"))
    list.add(CustomObject("B"))

    return list.sortedByDescending(object.property)
}

Этот является хорошим источником информации о сортировке в целом.

1 голос
/ 13 июня 2019

Смотрите здесь: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/index.html

Нажмите на функции, чтобы изучить некоторые детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...