A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a515030172 初级黑马   /  2019-1-8 19:29  /  511 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

基础阶段_异常汇总

异常一

创建人
崔周洋
问题标题
运行结果与需求不一致
问题分类
使用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);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马