如何在 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+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.