Comparator
- это интерфейс SAM (единственный абстрактный метод) в Java.Реализация такого интерфейса может быть реализована в Kotlin с использованием техники SAM-преобразования, поэтому вместо написания анонимного объекта, реализующего Comparator
, например:
val comparator = object : Comparator<WordItem> {
override fun compare(item1: WordItem, item2: WordItem): Int {
val size1 = item1.word.length
val size2 = item2.word.length
...
}
}
, вы можете написать
val comparator = Comparator<WordItem> { item1, item2 ->
val size1 = item1.word.length
val size2 = item2.word.length
...
}
Здесь я предполагаю, что у каждого WordItem
есть свойство word
.
Похоже, вы сравниваете элементы по длине слова.В этом случае вы можете еще больше упростить такой компаратор с помощью функции compareBy
:
wordItems.sortWith(compareBy { it.word.length })
или sortBy
function
wordItems.sortBy { it.word.length }