如何边遍历集合边删除元素--使用Iterator中的remove()方法
在遍历集合时,想将符合条件的某些元素删除,开始是用了下面的方法
- public static void main(String[] args) throws UnsupportedEncodingException {
- List<String> list = new ArrayList<String>();
- list.add("abc");
- list.add("bbc");
- list.add("cbc");
- Iterator<String> it = list.iterator();
- while(it.hasNext()){
- String str = it.next();
- System.out.println(str);
- if(str.equals("abc")){
- list.remove(str);
- }
- }
- }
结果报下面的异常
Exception in thread "main" Java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at junit.Test.main(Test.java:23)
查了下,原来java中的集合边遍历边删除是需要使用迭代器中的方法的,改为下面
public static void main(String[] args) throws UnsupportedEncodingException {
List<String> list = new ArrayList<String>();
list.add("abc");
list.add("bbc");
list.add("cbc");
Iterator<String> it = list.iterator();
while(it.hasNext()){
String str = it.next();
System.out.println(str);
if(str.equals("abc")){
it.remove();
}
}System.out.println(list.size());
}
问题解决
如何边遍历集合边删除元素--使用Iterator中的remove()方法的更多相关文章
- Day07_39_集合中的remove()方法 与 迭代器中的remove()方法
集合中的remove()方法 与 迭代器中的remove()方法 深入remove()方法 iterator 中的remove()方法 collection 中的remove(Object)方法 注意 ...
- Python简单遍历字典及删除元素的方法
Python简单遍历字典及删除元素的方法 这篇文章主要介绍了Python简单遍历字典及删除元素的方法,结合实例形式分析了Python遍历字典删除元素的操作方法与相关注意事项,需要的朋友可以参考下 具体 ...
- 在Python的列表中利用remove()方法删除元素的教程
在Python的列表中利用remove()方法删除元素的教程 这篇文章主要介绍了在Python的列表中利用remove()方法删除元素的教程,是Python入门中的基础知识,注意其和pop()方法的区 ...
- Day07_38_集合中的remove()方法
集合中的remove()方法 remove() 移除集合中的一个指定对象 代码实例 package com.shige.Collection; import java.util.ArrayList; ...
- 定义一个Collection接口类型的变量,引用一个Set集合的实现类,实现添加单个元素, 添加另一个集合,删除元素,判断集合中是否包含一个元素, 判断是否为空,清除集合, 返回集合里元素的个数等常用操作。
package com.lanxi.demo2; import java.util.HashSet; import java.util.Iterator; import java.util.Set; ...
- 58-python基础-python3-集合-集合常用方法-删除元素-remove()-discard()-pop()-clear()
删除元素-remove()-discard()-pop()-clear() 1-remove() remove()用于删除一个set中的元素,这个值在set中必须存在,如果不存在的话,会引发KeyEr ...
- jQuery 学习03——HTML:捕获、设置、添加元素、删除元素、CSS类、CSS()方法、尺寸
jQuery - 获取内容text().html() 以及 val()和属性attr() jQuery 中非常重要的部分,就是操作 DOM 的能力. DOM = Document Object Mod ...
- 遍历list时删除元素的正确做法
我们往往会遇到需要删除list中满足条件的元素.举例: List<string> list_str =new List<string>() { "A",&q ...
- Java 遍历Map时 删除元素
Java代码 package,,,,,,,,,,,==){ System.out.println("delete this: "+key+" = "+key ...
随机推荐
- OpenStack with Opendaylight Part 1: Intro to Pipeline
Using Vagrant to create vm nodes; devstack to start openstack using Opendaylight as ML2. Openstack w ...
- 51nod 1215 单调栈/迭代
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1215 1215 数组的宽度 题目来源: Javaman 基准时间限制:1 ...
- android 取mac若干问题
问题一:Error:Error: The WIFI_SERVICE must be looked up on the Application context or memory will leak o ...
- android不太常用的控件
AutoCompleteTextView:是一种与EditText类似的视图(实际上他是EditText的子类),只不过它还在用户输入时自动显示完成建议的列表 <AutoCompleteText ...
- ElasticSearch_学习_01_单实例安装与分布式安装
一.前言 二.下载 1.下载地址 https://www.elastic.co/downloads/past-releases 三.单实例安装 直接解压,window下运行 elasticsearch ...
- H5实现登录
1.主要就是获取cookie并每次发送请求时都带着:登录请求 2.添加HTTP Cookie管理器 3.登录请求时,加正则表达式提取器 取出返回的cookie ①使用charles抓包查看cookie ...
- IDEA使用操作文档
IDEA中怎么设置黑色或白色背景? http://jingyan.baidu.com/article/4e5b3e19330df191911e246b.html 一. IntelliJ IDEA 的 ...
- SSL/TLS捕包分析
一.基本概念 SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密 ...
- 编码不规范之将request传参到sevice中
最近审核团队成员代码,发现确实有很多不规范的地方,其中问题之一就是将request.response.session等参数到传入到sevice层处理,在sevice中通过request对象获取到参数后 ...
- [转]html5 video在安卓大部分浏览器包括微信最顶层的问题
能否解决video标签置顶的问题?答案是:不行的. 具体可查看官方解释:http://x5.tencent.com/guide?id=2009 //====================201604 ...