java.util.CollecitonのremoveIfメソッドの使い方

java.util.CollecitonのremoveIfメソッドの使い方

Java8からremoveIfメソッドが追加されています。

removeIfメソッドは引数にPredicateを取り、trueの場合のみ要素を削除するメソッドです。いずれかの要素を削除した場合、removeIfはtrueを返し、要素を削除できなかった場合はfalseを返します。

ラムダ式で書かなくても、Predicateを定義してremoveIfに渡しても良いです。

ConcurrentModificationException例外

拡張for文でListをループし、そのループ内でremoveメソッドを実行すると、ConcurrentModificationException例外が発生します。

結果は以下のように例外が発生します。

このようなことが発生するのでJava8以上ならremoveIfメソッドを使用、Java7以下ならイテレータを使用すれば安全に要素を削除することが出来ます。

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA