使用过滤器创建子列表不起作用

Creation of sublist using filter is not working

提问人:Seb 提问时间:4/1/2022 更新时间:4/1/2022 访问量:43

问:

我正在尝试从列表中提取所有不在已创建的子列表中的元素。我无法使用它,因为它对列表中的整个数据类存储进行过滤。.filterNot

var subList2 = allList.filterNot { subList1.contains(it) }.toMutableList()

但 allList 和 subList 是定义为以下数据类的列表:

data class Food(
    var name: Name,
    var state: State
)

截至目前,使用此代码,可以包含食物,因为是不同的。sublist2sublist1state

我希望过滤器只在上完成,所以 sublist2 只包含不在 what what is 中的食物。namesublist1state

任何想法 ?

人造人 列表 科特林 可变

评论


答:

0赞 lpizzinidev 4/1/2022 #1

尝试映射名称:subList1

val subList1Names = subList1.map { it.name }
var subList2 = allList.filterNot { it.name in subList1Names }.toMutableList()