在我创建和管理联系人的项目中,当我从for循环的数组列表中移除一个对象时,会抛出一个并发的修改异常(如javadoc中所述)。
我的问题是如何删除对象而不获得“并发修改异常”
我查看了类似的帖子,但找不到答案,有些帖子的代码很复杂,很多人问我为什么没有抛出异常。这个问题对我没有帮助/这个具体问题你可以阅读上面的链接来帮助我(我是新来的)
我用的是JDK14,ide:intellij,
我已经创建了管理联系人和获取输入的方法,但是我只提供抛出异常的方法。
public class Main {
private static ArrayList<Contact> contacts;
contacts = new ArrayList<>();
private static void deleteContact() {
System.out.println("Please enter contact name: ");
String name = scanner.next();
if (name.equals("")){
System.out.println("Please enter the name");
deleteContact();
}else{
boolean doesExist = false;
for(Contact c:contacts) { //Error pointed on this line.
if (c.getName().equals(name)) {
doesExist = true;
contacts.remove(c);
}
}
if (!doesExist){
System.out.println("There is no such contact");
}
}
showInitialOptions();
}
}
“联系人”类的重要代码
public class Contact {
private String name;
private int number;
private String email;
public Contact(String name, int number, String email ) {
this.name = name;
this.number = number;
this.email = email;
;
}
public String getName() {
return name;
}
}
2条答案
按热度按时间dfuffjeb1#
你可以使用
Iterator
迭代ArrayList
:lpwwtiir2#
对于您的特殊问题,请将行从
到
应该有用的