• 技术文章 >Java >java教程

    java中循环遍历删除List和Set集合中元素的方法

    高洛峰高洛峰2017-01-22 16:01:30原创1881
    今天在做项目时,需要删除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中循环遍历删除List和Set集合中元素的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支PHP中文网。

    更多java中循环遍历删除List和Set集合中元素的方法相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 遍历 list set
    上一篇:java arrayList遍历的四种方法及Java中ArrayList类的用法 下一篇:Java中List与Map初始化的一些写法
    千万级数据并发解决方案

    相关文章推荐

    • 快速上手Java数据结构之字符串• java知识点详解之注解与元注解• 一起来分析java是值传递还是引用传递• 详细整理java枚举的使用总结• 带你搞懂JAVA反射机制(总结分享)
    1/1

    PHP中文网