服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|编程技术|正则表达式|

服务器之家 - 编程语言 - JAVA教程 - java中循环遍历删除List和Set集合中元素的方法(推荐)

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

2020-07-09 10:36java教程网 JAVA教程

下面小编就为大家带来一篇java中循环遍历删除List和Set集合中元素的方法(推荐)。小编觉得挺不错的,在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

今天在做项目时,需要删除ListSet中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常:

ConcurrentModificationException

为了以后不忘记,使用烂笔头把它记录如下:

错误代码的写法,也就是报出上面异常的写法:

java" id="highlighter_318596">
?
1
2
3
4
5
6
Set<CheckWork> set = this.getUserDao().getAll(qf).get(0).getActionCheckWorks();
for(CheckWork checkWork : set){
  if(checkWork.getState()==1){
    set.remove(checkWork);
  }
}

注意:使用上面的写法就会报上面的ConcurrenModificationException异常,原因是,集合不可以一边遍历一边删除。

正确的写法如下:

1. 遍历删除List

?
1
2
3
4
5
6
7
8
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

?
1
2
3
4
5
6
7
8
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集合中元素的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

延伸 · 阅读

精彩推荐
  • JAVA教程java针对电话号码正则匹配实例

    java针对电话号码正则匹配实例

    这篇文章主要介绍了java针对电话号码正则匹配的方法,涉及java正则匹配与字符串操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下 ...

    懒萝卜4202019-12-29
  • JAVA教程配置pom.xml用maven打包java工程的方法(推荐)

    配置pom.xml用maven打包java工程的方法(推荐)

    下面小编就为大家带来一篇配置pom.xml用maven打包java工程的方法(推荐)。小编觉得挺不错的, 现在就分享给大家,也给大家做个参考。一起跟随小编过来看看...

    java教程网1512020-05-19
  • JAVA教程java中输出pdf文件代码分享

    java中输出pdf文件代码分享

    这篇文章主要介绍了java中输出pdf文件代码分享,本文直接给出实现代码,需要的朋友可以参考下 ...

    junjie3712019-12-13
  • JAVA教程java发送javax.mail邮件实例讲解

    java发送javax.mail邮件实例讲解

    这篇文章主要为大家介绍了java发送javax.mail邮件实例讲解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 ...

    lijiao3912020-03-24
  • JAVA教程MyBatis一对一映射初识教程

    MyBatis一对一映射初识教程

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。在我们生活中一对一的例子很多见,下面通过本文给大家带来了mybatis一对一映射初...

    Java大S2352020-06-07
  • JAVA教程java通过客户端访问服务器webservice的方法

    java通过客户端访问服务器webservice的方法

    这篇文章主要介绍了java通过客户端访问服务器webservice的方法,涉及java创建与调用webservice的相关技巧,需要的朋友可以参考下 ...

    xiangqian05052992020-06-06
  • JAVA教程深入了解Java GC的工作原理

    深入了解Java GC的工作原理

    下面小编就为大家带来一篇深入了解Java GC的工作原理。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    jingxian2692020-05-18
  • JAVA教程详解Java编程中的策略模式

    详解Java编程中的策略模式

    这篇文章主要介绍了详解Java编程中的策略模式,以及用策略模式来分析源码等内容,需要的朋友可以参考下 ...

    zinss269143542020-01-02