小编03k*_*kim的帖子

如果条件取决于迭代器所基于的对象的属性,如何从迭代器中删除元素?

让我详细说明一下:

我需要能够迭代对象列表。每个对象都有一个列表属性,我必须检查该列表是否包含其他列表中不存在的元素。

当我尝试使用嵌套 for 循环来做到这一点时,它不断给我并发修改异常,所以我尝试使用迭代器,但现在我陷入困境,因为如果我基于对象列表创建一个迭代器,我可以不访问单个对象的属性然后进行迭代。

这是我试图完成的一些示例代码:

for (preference in preferencesWithRestaurant) {
    for (restaurantID in preference.restaurantIDs) {
        // One method I tried using
        preferencesWithRestaurant.removeIf{ !listOfIds.contains(restaurantID) }

        /* alternate method I tried using
        if (!listOfIds.contains(restaurantID)) {
            preferencesWithRestaurant.remove(preference)
        }
        */

    }
}
Run Code Online (Sandbox Code Playgroud)

iteration iterator kotlin

1
推荐指数
1
解决办法
548
查看次数

标签 统计

iteration ×1

iterator ×1

kotlin ×1