如何使用Kotlin进行特定排序?

时间:2019-03-09 08:07:55

标签: kotlin

我在Kotlin中有这个ArrayList:

a = ArrayList<String>()
a.add("eat")
a.add("animal")
a.add("internet")

我想按“ e”的频率对ArrayList的元素进行排序,例如,我想拥有一个新的ArrayList,例如:

a[0] = "animal" // there is no e in animal
a[1] = "eat" // there is one e in animal
a[2] = "internet" // there is two e in internet

我以为要使用Collections.sort(a),但就像我的排序是特定的那样,就行不通了...

你有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

您也可以执行此操作而无需先将每个String转换为CharArray(如当前接受的答案一样),我不知道您为什么这样做:

a.sortBy { it.count { it == 'e' } }

此外,您可能要命名嵌套的it

a.sortBy { word -> word.count { character -> character == 'e' } }

答案 1 :(得分:2)

在手机上书写,因此语法可能不完全正确,但类似于:

a.sortBy { it.toCharArray().count { it == 'e' } }