Iterator
リストからエントリを削除するには、を使用する必要があります。List
強化された for ループを使用して反復しながら変更しようとすると、 ConcurrentModificationExceptionがスローされる場合がありますが、これは常に発生するわけではありませんが、保証はありません。
リストに使用する方法は次のIterator
とおりです。 -
Iterator<Entry> iterator = Directory.entries.iterator();
while (iterator.hasNext()) {
Entry entry = iterator.next();
if (entry.name.equalsIgnoreCase(nameToDelete)) {
iterator.remove();
}
}
であっても、メソッドではなくメソッドをIterator
使用して要素を削除する必要があります。それは違いがないからです。iterator.remove
list.remove
ListIteratorを使用して、さらに多くの操作とメソッドを使用してリストを反復することもできます。詳細については、ドキュメントを参照してください。
を使用するにはListIterator
、次のように作成できます。
ListIterator<Entry> listIterator = Directory.entries.listIterator();
残りのコードは同じように機能します。