listTierator迭代器
package com.wangg;
import java.util.ArrayList;
import java.util.Iterator;
public class Dome09 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("aa");
strings.add("bb");
strings.add("cc");
strings.add("dd");
strings.add("ee");
//在cc之后添加一个字符串kk
Iterator<String> it = strings.iterator();
while (it.hasNext()){
if ("cc".equals(it.next())){
strings.add("kk");
}
}
}
}
发现报错
Exception in thread "main" java.util.ConcurrentModificationException//并发修改异常
出现报错的原因:就是迭代器和list同时对集合进行操作
迭代和修改都让LIstLterator来完成的
package com.wangg;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class Dome09 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("aa");
strings.add("bb");
strings.add("cc");
strings.add("dd");
strings.add("ee");
//在cc之后添加一个字符串kk
ListIterator<String> it= strings.listIterator();
while (it.hasNext()){
if ("cc".equals(it.next())){
it.add("kk");
}
}
System.out.println(strings );
}
}
package com.wangg;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class Dome09 {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<>();
strings.add("aa");
strings.add("bb");
strings.add("cc");
strings.add("dd");
strings.add("ee");
//在cc之后添加一个字符串kk
ListIterator<String> it= strings.listIterator();
while (it.hasNext()){
if ("cc".equals(it.next())){
it.add("kk");
}
}
System.out.println(it.hasNext());//判断下面是否有元素
System.out.println(it.hasPrevious());//判断上面是否有元素
//逆向遍历
while (it.hasPrevious()){
System.out.println(it.previous());
}
System.out.println(it.hasNext());
System.out.println(it.hasPrevious());
System.out.println(strings );
}
}

浙公网安备 33010602011771号