如何在 Kotlin 列表中查找重复值的个数?
在这篇文章中,我们将学习如何在 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
广告