如何在 Kotlin 列表中查找重复值的数量?
kotlin mobile developmentapps/applications
在本文中,我们将了解如何在 Kotlin 列表中查找重复值的数量。
示例 - 使用 groupingBy() 查找重复值
Kotlin 库提供了一个名为 groupingBy() 的内联函数,该函数会从数组中创建分组源,稍后将使用指定的 keySelector 函数进行分组折叠操作,从每个元素中提取一个键。
groupingBy() 的函数声明如下所示 −
inline fun <T, K> Array<out T>.groupingBy( crossinline keySelector: (T) -> K ): Grouping<T, K>
在本例中,我们将创建一个值列表,并在列表中实现 groupingBy() 方法。
fun main(args: Array<String>) {
val mylist = listOf("C", "Java", "C#", "Java", "C", "C#", "SQL")
println(mylist.groupingBy { it }.eachCount().filter { it.value >= 1 })
}
输出
它会产生以下输出 −
{C=2, Java=2, C#=2, SQL=1}
示例 - 使用 count() 查找重复值
另一种查找 Kotlin 列表中重复元素数量的方法是使用 count() 函数。在此示例中,我们将修改上述代码,以生成每个值在列表中出现的次数。
fun main(args: Array<String>) {
val mylist = listOf("C", "Java", "C#", "Java", "C", "C#", "SQL")
println("Input List: " + mylist)
println("Count of C: " + mylist.count{it == "c"})
println("Count of Java: " + mylist.count{it == "Java"})
println("Count of C# : " + mylist.count{it == "C#"})
println("Count of SQL: " + mylist.count{it == "SQL"})
}
输出
它将产生以下输出 −
Input List: [C, Java, C#, Java, C, C#, SQL] Count of C: 0 Count of Java: 2 Count of C# : 2 Count of SQL: 1

