提问人:Cipri 提问时间:11/18/2022 最后编辑:Cipri 更新时间:11/18/2022 访问量:681
Kotlin list removeAll 不适用于列表
Kotlin list removeAll is not working with a list
问:
为什么 Kotlin list removeAll 在此示例中不起作用:
orderList.addAll(allProducts)
orderList.removeAll(allProducts)
上面的代码将添加产品,但不会删除它们。orderList 是一个 mutableList
产品:
class Product : EmbeddedRealmObject {
var name: String = ""
var category: String = ""
var productDescription: String? = ""
var price: Float = 0F
var imagine: String? = null
}
答:
0赞
Tenfour04
11/18/2022
#1
它不起作用,因为您没有为您的类 Product 定义适当的函数。 通过查找集合中的元素来工作,其中相等性检查返回 true 与传递给它的集合中的元素。它还在后台使用一个 Set 来优化此过程,因此必须适当地定义与 相关的 。equals()
hashcode()
removeAll
equals()
hashcode()
equals()
您可以使用 IDE 中的选项生成和匹配函数,也可以将其定义为类而不是普通类。 类自动具有适当的属性,并且使用主构造函数中定义的所有属性。equals()
hashcode()
data
data
equals()
hashcode()
评论
0赞
Cipri
11/18/2022
成功了!我不明白为什么简单的删除不需要等于和hashcode()
0赞
Tenfour04
11/18/2022
除非您传递相同的原始实例,否则它确实需要它们,在这种情况下,即使它忽略所有属性值,也会返回 true。equals
评论
orderList
allProducts
equals
Product