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

相关文章