Android Kotlin按整理器排序

时间:2018-12-21 09:36:08

标签: android sorting kotlin

我想基于一个字段(player.name)对对象列表进行排序,但是在西班牙语中存在在订购时不必考虑的重音符号。

我对列表进行了排序

strikers.sortedWith(compareBy { it.name })

但是我不知道如何应用于上述排序

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

我该如何实现?

问候,迭戈

2 个答案:

答案 0 :(得分:5)

像这样?

val spanishCollator = strikers.sortedWith(Comparator { s1, s2 ->
                Collator.getInstance(Locale("es", "ES")).compare(s1,s2)
            })

答案 1 :(得分:2)

Collator类实现了Comparator接口,因此您可以使用它来比较名称,如下所示:

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

这里我们将其用作compareBy函数重载的比较器参数,它同时使用值选择器{ it.name }和比较器spanishCollator来比较这些值。