如何计算 Kotlin 数组中项目出现的次数

tan*_*vei 3 android intellij-idea kotlin

我想计算 kotlin 中的数组列表。我所拥有的是类似的东西:

val names = listOf("apple", "apple", "orange", "orange", "banana", "pears", "grape", "apricots")
Run Code Online (Sandbox Code Playgroud)

我想要的输出是这样的:

苹果 : 2 橙子 : 2 香蕉 : 1 梨 : 1 葡萄 : 1 杏子 : 1

你能帮我吗,谢谢

Ben*_*uel 9

使用eachCountgroupingBy也可能是一个很好的解决方案。

例如:

val names = listOf("apple", "apple", "orange", "orange", "banana", "pears", "grape", "apricots")
val frequencies = names.groupingBy { it }.eachCount()
print(frequencies)

//{apple=2, orange=2, banana=1, pears=1, grape=1, apricots=1}
Run Code Online (Sandbox Code Playgroud)


小智 5

您可以使用 HashMap 来计算 ArrayList 中每个单词的出现次数。

val names = listOf("apple", "apple", "orange", "orange", "banana", "pears", "grape", "apricots")
val frequencyMap: MutableMap<String, Int> = HashMap()

for (s in names) {
    var count = frequencyMap[s]
    if (count == null) count = 0
    frequencyMap[s] = count + 1
}

println(frequencyMap)
Run Code Online (Sandbox Code Playgroud)