概述
1.需求
假若有一个集合,我们相判断里面有没有”world“这个元素,如果有,就添加一个“javaee”,请写代码实现
package xfcy_01;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* 案例:在集合中查找是否由“world”这个元素,若有,就添加一个“java”
* @author 晓风残月
*
*/
public class ListDemo08 {
public static void main(String[] args) {
//创建List集合对象
List list=new ArrayList();
//创建元素对象
String s1="hello";
String s2="world";
//将元素添加到集合中
list.add(s1);
list.add(s2);
//遍历
Iterator it=list.iterator();
while(it.hasNext()){
String s=(String)it.next();
if("world".equals(s)){
list.add("javaee");
}
}
System.out.println(list);
}
}
运行结果为:
报错:ConcurrentModificationException,是因为把集合中的元素更改了,但是迭代器却不知道
2.解决方案
1.迭代器迭代元素,迭代器修改元素
元素是跟在刚才迭代的元素后面的。
2.集合遍历元素,集合修改元素
元素在最后添加的。
元素是跟在刚才迭代的元素后面的。
2.集合遍历元素,集合修改元素
元素在最后添加的。
方案一代码:
package xfcy_01;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* 案例:在集合中查找是否由“world”这个元素,若有,就添加一个“java”
* @author 晓风残月
*
*/
public class ListDemo08 {
public static void main(String[] args) {
//创建List集合对象
List list=new ArrayList();
//创建元素对象
String s1="hello";
String s2="world";
//将元素添加到集合中
list.add(s1);
list.add(s2);
//遍历
//利用迭代器遍历,修改迭代器,由于Iterator中没有add方法,所以用其子接口ListIterator
ListIterator li=list.listIterator();
while(li.hasNext()){
String s=(String)li.next();
if("world".equals(s)){
li.add("javaee");
}
}
System.out.println(list);
}
}
运行结果:
方案二:
package xfcy_01;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* 案例:在集合中查找是否由“world”这个元素,若有,就添加一个“java”
* @author 晓风残月
*
*/
public class ListDemo08 {
public static void main(String[] args) {
//创建List集合对象
List list=new ArrayList();
//创建元素对象
String s1="hello";
String s2="world";
//将元素添加到集合中
list.add(s1);
list.add(s2);
//遍历
//修改集合,利用普通遍历
for(int i=0;i<list.size();i++){
String s=(String)list.get(i);
if("world".equals(s)){
list.add("javaee");
}
}
System.out.println(list);
}
}
运行结果:
3.总结
若要修改集合中的元素,要么通过使用普通集合遍历修改集合,要么通过迭代器遍历同时修改迭代器,如果通过迭代器遍历的同时修改集合则回造成错误。
最后
以上就是细腻酒窝为你收集整理的迭代器添加元素中遇到的问题1.需求2.解决方案3.总结的全部内容,希望文章能够帮你解决迭代器添加元素中遇到的问题1.需求2.解决方案3.总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复