ホームページ > Java > &#&チュートリアル > Java で List および Set コレクションの要素をループして削除する方法 (推奨)

Java で List および Set コレクションの要素をループして削除する方法 (推奨)

高洛峰
リリース: 2017-01-23 16:52:13
オリジナル
2196 人が閲覧しました

今日プロジェクトに取り組んでいたとき、ListとSetの特定の要素を削除する必要があり、トラバースして削除しながらトラバースする方法を使用しましたが、次の例外が報告されました:

ConcurrentModificationException

将来的には、悪いペンを使用して記録しました。

エラーコードの書き方、つまり、上記の例外を報告する方法:

Set<CheckWork> set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks();
for(CheckWork checkWork : set){
  if(checkWork.getState()==1){
    set.remove(checkWork);
  }
}
ログイン後にコピー

注: 上記を使用します。書き込みメソッドは上記の ConcurrenModificationException 例外を報告します。その理由は、コレクションの走査と削除を同時に行うことができないためです。

正しい書き方は以下の通りです:

1. List

List<CheckWork> list = this.getUserDao().getAll();
Iterator<CheckWork> chk_it = list.iterator();
while(chk_it.hasNext()){
  CheckWork checkWork = chk_it.next();
  if(checkWork.getPlanState()==1){
    chk_it.remove();
  }
}
ログイン後にコピー

を走査して削除します

2. Set

Set<CheckWork> set = this.getUserDao().getAll().get(0).getActionCheckWorks();
        Iterator<CheckWork> it = set.iterator();
        while(it.hasNext()){
            CheckWork checkWork = it.next();
            if(checkWork.getState()==1){
                it.remove();
            }
        }
ログイン後にコピー

を走査して削除します

上記の要素をループして削除する方法Java のリストとセットのコレクション (推奨) はエディターによって共有されるすべてのコンテンツです。参考にしていただければ幸いです。また、PHP 中国語 Web サイトもサポートしていただければ幸いです。

Java で List および Set コレクションの要素をループおよび削除するその他の方法 (推奨) については、PHP 中国語 Web サイトの関連記事に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート