如何在 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

更新于:2022年3月16日

4K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告