迭代時從集合中刪除元素
使用集合時,有必要在迭代時修改或刪除元素。但是,在迭代期間修改集合可能會導致 ConcurrentModificationException。為了避免這種情況,有幾種方法:
迭代集合的副本
一種方法是在迭代之前建立集合的副本。這允許您修改副本而不影響原始集合。以下是一個範例:
List<Foo> fooListCopy = new ArrayList<>(fooList); for (Foo foo : fooListCopy) { // Modify actual fooList }
使用實際集合的迭代器
另一種方法是使用實際集合的迭代器。這種方法允許您在迭代期間修改集合。以下是一個範例:
Iterator<Foo> itr = fooList.iterator(); while (itr.hasNext()) { // Modify actual fooList using itr.remove() }
選擇方法的注意事項
在這些方法之間進行選擇取決於幾個因素:
刪除元素的其他技術
除了這些方法之外,Java 8提供了幾種在迭代期間刪除元素的其他技術,包括:
以上是在 Java 中迭代時如何安全地從集合中刪除元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!