package TestList;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
public class TestIterator {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Iterator t = list.iterator();
while(t.hasNext()){
if(t.next().equals("bbb")){ //使用iterator遍历list集合时,如果想要删除任一集合内元素,必须要在正好遍历倒数第二个元素的时候去删除
list.remove("ccc");
}
}
TreeSet<String> set = new TreeSet<String>();
set.add("ddd");
set.add("eee");
set.add("fff");
Iterator t1 = set.iterator();
while(t1.hasNext()){
if(t1.next().equals("fff")){ //使用iterator遍历set集合时,如果想要删除任一集合内元素,必须要在正好遍历倒数第一个元素的时候去删除
set.remove("eee");
}
}
}
}
由于List,Set在实现Iterator时存在一定的差异,因此导致了List,Set在迭代的同时删除集合元素的会有不同的表现
java集合迭代器Iterator中的remove陷阱
2020-04-22 11:46小和尚敲代码 JAVA教程
这篇文章主要介绍了java集合迭代器Iterator中的remove陷阱,需要的朋友可以参考下
延伸 · 阅读
- 2020-04-22JAVA多线程之中断机制stop()、interrupted()、isInterr
- 2020-04-22java URL 获取PHP JSON 数据
- 2020-04-22base64_encode和base64_decode的JAVA实现
- 2020-04-22Simple JSON开发指南
- 2020-04-22java解析php函数json_encode unicode 编码问题
- 2020-04-22java留言管理系统中模糊查询实例分享
- JAVA教程
java实现socket从服务器连续获取消息的示例
这篇文章主要介绍了java实现socket从服务器连续获取消息的示例,需要的朋友可以参考下 ...
- JAVA教程
Java最全文件操作实例汇总
这篇文章主要介绍了Java最全文件操作,总结分析了大量实例,详细汇总了Java针对文件的各种常用操作,需要的朋友可以参考下 ...
- JAVA教程
java实现新浪微博Oauth接口发送图片和文字的方法
这篇文章主要介绍了java实现新浪微博Oauth接口发送图片和文字的方法,涉及java调用新浪微博Oauth接口的使用技巧,具有一定参考接借鉴价值,需要的朋友可以参...
- JAVA教程
Java函数式编程(一):你好,Lambda表达式
这篇文章主要介绍了Java函数式编程(一):你好,Lambda表达式,本文讲解了新老函数式编程的一些变化,需要的朋友可以参考下 ...
- JAVA教程
java中thread线程start和run的区别
这篇文章主要介绍了java中thread线程start和run的区别,run()是Runnable接口中定义的一个方法,是为了让客户程序员在这个方法里写自己的功能代码的。直接调用...
- JAVA教程
Java设计模式—观察者模式详解
这篇文章主要介绍了Java设计模式—观察者模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随...
- JAVA教程
Java多线程编程之Lock用法实例
这篇文章主要介绍了Java多线程编程之Lock用法实例,本文直接给出代码实例,需要的朋友可以参考下 ...
- JAVA教程
Java for-each循环使用难题2例(高级使用方法)
从Java5起,在Java中有了for-each循环,可以用来循环遍历collection和array。For each循环允许你在无需保持传统for循环中的索引,或在使用iterator /ListIterator时无需...