删除宠物猫信息问题
package com.imooc.cat;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class CatTast {
public static void main(String[] args) {
// 定义宠物猫对象
Cat huahua = new Cat("花花", 12, "英国短毛猫");
Cat fanfan = new Cat("凡凡", 6, "中华田园猫");
Set<Cat> set = new HashSet<Cat>();
set.add(huahua);
set.add(fanfan);
// 显示宠物猫信息
Iterator<Cat> it = set.iterator();// <Cat>泛型,就不用强制类型转换
System.out.println("宠物猫的信息:");
while (it.hasNext()) {
System.out.println(it.next());
}
// 再添加一个与花花同样属性的对象
Cat huahua1 = new Cat("花花", 12, "英国短毛猫");
set.add(huahua1);
System.out.println("****************************");
it = set.iterator();
System.out.println("添加重复宠物猫的信息:");
while (it.hasNext()) {
System.out.println(it.next());
}
// 重新插入新宠物猫信息
Cat huahua2 = new Cat("花花2", 2, "英国短毛猫");
set.add(huahua2);
System.out.println("****************************");
it = set.iterator();
System.out.println("添加花花2的信息:");
while (it.hasNext()) {
System.out.println(it.next());
}
// 在集合中用对象查找花花的信息并输出
System.out.println("****************************");
if (set.contains(huahua)) {
System.out.println("花花找到了");
System.out.println(huahua);
} else
System.out.println("没找到");
// 在集合中用名字查找花花的信息并输出
System.out.println("****************************");
System.out.println("通过名字找花花信息");
it = set.iterator();
Cat c = null;
boolean flag = false;
while (it.hasNext()) {
c = it.next();
if (c.getName().equals("花花")) {
flag = true;
break;
}
}
if (flag) {
System.out.println("花花找到了");
System.out.println(c);
} else
System.out.println("花花没找到");
System.out.println("****************************");
// 删除花花2并重新输出
//it = set.iterator();
for (Cat cat : set) {
if ("花花2".equals(cat.getName())) {
set.remove(cat);
}
}
System.out.println("删除2后的数据");
for (Cat cat : set) {
System.out.println(cat);
}
}
}为什么会出现这样的异常错误
14
收起
正在回答
2回答
这个异常时由于在循环中进行remove()方法调用引起的,处理的方式就是调用完remove()方法后,程序不要再继续往下遍历了,调用break;语句跳出循环,就没有问题了。这个属于集合设计的问题,不允许删除后再进行循环遍历集合。祝学习愉快!
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7235 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
这个异常
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星