发布于 2018-02-15 06:55:50 | 24 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Java函数式编程,程序狗速度看过来!

Java程序设计语言

java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。


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

今天在做项目时,需要删除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集合中元素的方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHPERZ。



相关阅读 :
java中循环遍历删除List和Set集合中元素的方法(推荐)
Java编程实现遍历两个MAC地址之间所有MAC的方法
java数组遍历 删除remove(示例代码)
一段代码搞懂关于Java中List、Set集合及Map的使用
java集合类arraylist循环中删除特定元素的方法
Java递归遍历树形结构
Java中使用DOM和SAX解析XML文件的方法示例
解析Java中的队列和用LinkedList集合模拟队列的方法
2种Java删除ArrayList中的重复元素的方法
java使用ArrayList遍历及效率比较实例分析
java使用归并删除法删除二叉树中节点的方法
java使用iterator遍历指定目录示例分享
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务