java ListIterator接口

Posted yimian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ListIterator接口相关的知识,希望对你有一定的参考价值。

并发修改异常产生的原因及解决方案
* A:案例演示
* 需求:我有一个集合,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。

List list = new ArrayList();
list.add("a");
list.add("b");
list.add("world");
list.add("d");
list.add("e");

/*Iterator it = list.iterator();    //边遍历,  边增加元素 -------- 是程序不允许的操作
while(it.hasNext()) {
String str = (String)it.next();
if(str.equals("world")) {
list.add("javaee"); //这里会抛出ConcurrentModificationException并发修改异常
}
}*/


* B:ConcurrentModificationException出现
* 迭代器遍历,集合修改集合
* C:解决方案
* a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add)   //listiterator特有的方法解决这个问题
* b:集合遍历元素,集合修改元素

 

解决办法:

ListIterator lit = list.listIterator(); //如果想在遍历的过程中添加元素,可以用ListIterator中的add方法
while(lit.hasNext()) {
String str = (String)lit.next();
if(str.equals("world")) {
lit.add("javaee");
//list.add("javaee");
}
}

ListIterator
* boolean hasNext()是否有下一个
* boolean hasPrevious()是否有前一个
* Object next()返回下一个元素
* Object previous();返回上一个元素

  


































以上是关于java ListIterator接口的主要内容,如果未能解决你的问题,请参考以下文章

java ListIterator接口

JAVA-初步认识-常用对象API(集合框架-ListIterator接口)

Java集合框架--List接口 & List接口的使用 & 列表迭代器ListIterator

创建ListIterator对象

Java:list.listIterator() 返回的对象属于哪个类?

java 列表迭代器