Kotlin 在 mutableList 中查找重复项

Kotlin finding duplicate items in mutableList

我有一个列表

 val shoeCart = ShoeRepository.getShoeFromCart(this@ActivityCart)

来自 ShoeRepository

 fun getShoeFromCart(context: Context): List<ShoeModel> {
    return getCart(context)
}

ShoeModel是一个数据class

data class ShoeModel

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

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

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 })
}

此代码段的输出是 {ShoeModel(someProperty=1)=2, ShoeModel(someProperty=2)=2}