• 技术文章 >Java >java教程

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

    高洛峰高洛峰2017-01-23 16:52:13原创1102
    今天在做项目时,需要删除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遍历集合的三种方式 下一篇:JAVA collection集合之扑克牌游戏实例
    千万级数据并发解决方案

    相关文章推荐

    • 一起来理解Java中的泛型• 整理分享Java语言表达式的五个谜题• java反射机制详细解析(总结分享)• 快速上手Java数据结构之字符串• 详细整理java枚举的使用总结
    1/1

    PHP中文网