领域:迭代RealmObject并清除ArrayList字段

时间:2015-04-27 21:22:41

标签: java android iterator realm

我有RealmResults<Section>RealmList<Event>字段,我想在每个部分清除。

我已经尝试过(insudemRealm.executeTransaction)

for (Section section : mSections) {
    section.getEvents().clear();
}

Iterator<Section> sectionIterator = mSections.iterator();
while (sectionIterator.hasNext()) {
    sectionIterator.next().getEvents().clear();
}

但Realm抛出此异常

  

java.util.ConcurrentModificationException:没有外面的   迭代RealmResults时允许对Realm进行更改。使用   而是迭代器方法。

1 个答案:

答案 0 :(得分:7)

由于您实际上并没有删除正在迭代的元素,因此您可以使用传统的for循环:

for (int i = 0; i < mSections.size(); i++) {
    mSections.get(i).getEvents().clear();
}

请注意,如果您确实需要使用Iterator删除元素,则需要在remove()本身使用Iterator方法。

See Documentation