Javaで、Listからある条件に合う要素を削除したい時。
for文を使って順番に削除しようとすると、削除したことにより途中でインデックスがずれてしまうので、for文中で削除することは出来ません。
Java 8から、Collection に removeIf というメソッドが追加され、削除したい条件によっては、条件をPredicateで用意し、list.removeIf(predicate); で削除できるそうです。
無理な条件の指定の仕方もある(Predicate について要検証)。
条件に合う要素を別のListに追加する方が確実みたいです
参考