博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
遍历集合的Iterator删除其中的元素
阅读量:4597 次
发布时间:2019-06-09

本文共 1000 字,大约阅读时间需要 3 分钟。

package list;

import java.util.LinkedList;

/*

* 遍历集合的时候删除其中的元素

从后往前删,每次都删除的是最后一个元素,不涉及移位

*/
public class List01 {
public static void main(String[] args) {
LinkedList<Object> list = new LinkedList<>();
list.add("I");
list.add("love");
list.add("you");

/*for (int i = list.size()-1; i>= 0; i--) {

list.remove(i);
System.out.println(list);
}*/

//报出ConcurrentModificationException并发修改异常

//modCount和expectedModCount不相等的时候会报出上面的异常
// for(Object obj:list) {
// list.remove(obj);
// }

 

 

 

Iterator iter = list.iterator();

/*
* boolean hasNext()如果迭代具有更多的元素,则返回true 。
*(换句话说,如果next()返回一个元素而不是抛出一个异常,
* 则返回true ) 结果 true如果迭代有更多的元素
*/
while (iter.hasNext() ){
/*
* E next()返回迭代中的下一个元素。 结果 迭代中的下一个元素
*/
iter.next();
/*
* default void remove()从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 此方法只能调用一次next() 。
* 如果底层集合在迭代过程中以任何方式进行修改而不是通过调用此方法,则迭代器的行为是未指定的。
*/
iter.remove();
}
System.out.println(list);

}
}

----------------------------打印结果---------------------------

[I, love]

[I]
[]

[]

转载于:https://www.cnblogs.com/Koma-vv/p/9545669.html

你可能感兴趣的文章
IOS中实现单例
查看>>
Math 对象
查看>>
[luoguP1877] [HAOI2012]音量调节(DP)
查看>>
重磅 | 2017年深度学习优化算法研究亮点最新综述火热出炉
查看>>
clipboard.js 介绍
查看>>
(二)程序中的内存&&栈
查看>>
一个实例来见证LINGO的强大
查看>>
C# — WinForm TCP连接之服务器端
查看>>
HTML8
查看>>
asp.net 导出excel 以及插入图片
查看>>
揭密Google Map的工作原理(转)
查看>>
掌握这几种微服务模式助你成为更出色的工程师
查看>>
clapack在android上移植
查看>>
java学习 - 读代码记录2
查看>>
mysql,mycat的demo
查看>>
MongoDB--CSharp Driver Quickstart .
查看>>
Android 开发框架【转】
查看>>
ansible基础-Jinja2模版 | 测试
查看>>
数字图像处理实验(5):PROJECT 04-01 [Multiple Uses],Two-Dimensional Fast Fourier Transform ...
查看>>
sqlite3:深入理解sqlite3_stmt 机制
查看>>