黑马程序员技术交流社区

标题: [石家庄校区] [打印本页]

作者: a515030172    时间: 2019-1-8 19:29
标题: [石家庄校区]
基础阶段_异常汇总

异常一

创建人
崔周洋
问题标题
运行结果与需求不一致
问题分类
使用iterator ,while循环遍历集合,并判断集合中是否含有该元素时,运行结果与需求不一致
一级话题
运行结果为: [];
里面并没有我需要的元素.
问题补充
附件
//在原有集合的情况,再次创建了一个新集合.
Collection<String> coll = new ArrayList<>();
ArrayList<String> coll1 = new ArrayList<>();
...
Iterator<String> it = coll.iterator();
while (it.hasNext()){
    String s = it.next();
    if (!coll.contains(s)){//判断集合中是否含有该元素
        coll1.add(s);
问题答案
问题分析:
经检查得知在判断是否含有该元素时的目标集合选择错误.
问题解决方法:
修改代码第6行
If!coll1.contains(s)(
   Coll1.add(s)
)

异常二
创建人
谢凯
问题标题
运行报错
问题分类
使用ArrayList集合时并修改了它
一级话题
Exception in thread "main" java.util.ConcurrentModificationException
        at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:937)
        at java.base/java.util.ArrayList$Itr.next(ArrayList.java:891)
        at zuoye.GaiZhengText4.main(GaiZhengText4.java:19)
问题补充
附件
Iterator<String> it = coll.iterator();//定义一个迭代器
while (it.hasNext()) {//使用while循环遍历
    String s = it.next();
    if (s.length() < 5 || s.length() > 10) {
        coll.remove(s);//删除集合中的元素
    }
}
System.out.println(coll);
问题答案
问题分析:
代码中第五行没有办法在使用coll.remove.
问题解决方法:
修改代码第5行为:
it.remove(s);






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2