Ani*_*aje 3 java iterator linked-list
我为 LinkedList 编写了一个简单的代码,将数据添加到其中并对其进行迭代,
我导入了 LinkedList 和 Iterator 所需的包,代码中没有错误,
我收到以下异常 -
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(Unknown Source)
at java.util.LinkedList$ListItr.next(Unknown Source)
at collectionFramework.Demo.displayList(LinkedListDemo.java:38)
at collectionFramework.LinkedListDemo.main(LinkedListDemo.java:13)
Run Code Online (Sandbox Code Playgroud)
这是我的代码 -
package collectionFramework;
import java.util.Iterator;
import java.util.LinkedList;
public class LinkedListDemo{
public static void main(String[] args) {
Demo obj = new Demo();
obj.addToList();
obj.displayList();
}
}
class Demo{
LinkedList<String> al;
Iterator<String> itr;
Demo(){
al = new LinkedList<String>();
itr = al.iterator();
}
void addToList(){
al.add("Aniruddha");
al.add("Hitesh");
al.add("Rahul");
al.add("Kshitij");
}
void displayList(){
while(itr.hasNext()){
System.out.println(itr.next());
}
}
}
Run Code Online (Sandbox Code Playgroud)
您应该进入iterator
显示方法,例如:
void displayList(){
itr = al.iterator();
while(itr.hasNext()){
System.out.println(itr.next());
}
}
Run Code Online (Sandbox Code Playgroud)
对于LinkedList
has 一个字段modCount
,这个字段用来记录这个列表被结构化修改的次数。
该列表的结构被修改的次数。结构修改是那些改变列表大小的修改,或者以其他方式扰乱列表的修改,以致正在进行的迭代可能会产生不正确的结果。
当你第一次创建的时候iterator
,modCount
已经0
记录ListItr
了expectedModCount=modCount=0
你修改后的列表。已modCount
更新,您的示例是4。
当迭代器时,它会比较迭代器expectedModCount
和List modCount
,如果不相等,则ConcurrentModifyExpection
抛出异常。
归档时间: |
|
查看次数: |
2858 次 |
最近记录: |