Android Kotlin сортировка по коллатору - PullRequest
0 голосов
/ 21 декабря 2018

Я хочу отсортировать список объектов на основе одного поля (player.name), но на испанском языке существуют акценты, которые не нужно учитывать при оформлении заказа.

Я сортирую список:

strikers.sortedWith(compareBy { it.name })

Но я понятия не имею, как применить вышеуказанную сортировку

val spanishCollator = Collator.getInstance(Locale("es", "ES"))

Как мне этого добиться?

С уважением, Диего

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018
Класс

Collator реализует интерфейс Comparator, поэтому вы можете использовать его для сравнения имен следующим образом:

strikers.sortedWith(compareBy(spanishCollator) { it.name })

Здесь мы используем его в качестве аргумента для сравнения compareBy Перегрузка функции, которая принимает селектор значений { it.name } и компаратор spanishCollator, который сравнивает эти значения.

0 голосов
/ 21 декабря 2018

Как то так?

val spanishCollator = strikers.sortedWith(Comparator { s1, s2 ->
                Collator.getInstance(Locale("es", "ES")).compare(s1,s2)
            })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...