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