时间:2021-05-19
今天在做项目时,需要删除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集合中元素的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
遍历删除List中的元素有很多种方法,当运用不当的时候就会产生问题。下面主要看看以下几种遍历删除List中元素的形式:1.通过增强的for循环删除符合条件的多个
详解Java中list,set,map的遍历与增强for循环Java集合类可分为三大块,分别是从Collection接口延伸出的List、Set和以键值对形式作
在java中如果我们需要遍历集合并删除其中的某些元素时,例如对于List来说,我们有三种办法。1.普通的for循环遍历并删除publicvoidforRemov
循环可以用来重复执行某条语句,直到某个条件得到满足或遍历所有元素。1for循环是for循环,可以把集合数据类型list、tuple、dict、set的元素遍历出
JavaSet集合的遍历及实现类的比较Java中Set集合是一个不包含重复元素的Collection,首先我们先看看遍历方法packagecom.sort;im