Kotlin 在 mutableList 中查找重复项

sof*_*fun 1 model list kotlin data-class mutablelist

我有一个清单

 val shoeCart = ShoeRepository.getShoeFromCart(this@ActivityCart)
Run Code Online (Sandbox Code Playgroud)

来自鞋库

 fun getShoeFromCart(context: Context): List<ShoeModel> {
    return getCart(context)
}
Run Code Online (Sandbox Code Playgroud)

ShoeModel 是一个数据类

data class ShoeModel
Run Code Online (Sandbox Code Playgroud)

我想知道我的 ShoesCart 中是否有重复的条目,如果有,有多少?

Com*_*vis 6

数据类已经equals实现了它们的方法,因此我们可以使用eachCountMap 扩展将值映射到它们的数量。

data class ShoeModel(val someProperty: Int)

fun main() {
    val source = listOf(ShoeModel(1), ShoeModel(2), ShoeModel(1), ShoeModel(2), ShoeModel(3))
    println(source.groupingBy { it }.eachCount().filter { (_, v) -> v >= 2 })
}
Run Code Online (Sandbox Code Playgroud)

该片段的输出是{ShoeModel(someProperty=1)=2, ShoeModel(someProperty=2)=2}