我在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),但就像我的排序是特定的那样,就行不通了...
你有什么想法吗?
谢谢!
答案 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' } }