Java 如何从ArrayList中删除项目
嗨,我正在尝试创建一个地址簿并将所有条目存储到arrayList。我我当前在从列表中删除项目时遇到问题。谁能帮帮我吗。 这是我的ArrayList,其中包含setter/getter和构造函数Java 如何从ArrayList中删除项目,java,arrays,arraylist,Java,Arrays,Arraylist,嗨,我正在尝试创建一个地址簿并将所有条目存储到arrayList。我我当前在从列表中删除项目时遇到问题。谁能帮帮我吗。 这是我的ArrayList,其中包含setter/getter和构造函数 List<AddressBook> addToList = new ArrayList<AddressBook>(); 第12行是 for (AddressBook item : addToList) { 使用旧的for with iterator并调用iterator.rem
List<AddressBook> addToList = new ArrayList<AddressBook>();
第12行是
for (AddressBook item : addToList) {
使用旧的for with iterator并调用iterator.remove方法,而不是在for each循环中调用remove
for (Iterator<AddressBook> it = addToList.iterator(); it.hasNext();) {
AddressBoook item = it.next();
if (name.equalsIgnoreCase(item.getName())){
it.remove();
System.out.println("Item removed");
} else {
System.out.println("name not found");
}
}
ArrayList迭代器是快速失效的,这意味着在从集合中获取迭代器后对集合所做的任何更改都将在访问下一个元素时导致ConcurrentModificationException。iterator.remove方法绕过了这个限制
for (AddressBook item : addToList) {
for (Iterator<AddressBook> it = addToList.iterator(); it.hasNext();) {
AddressBoook item = it.next();
if (name.equalsIgnoreCase(item.getName())){
it.remove();
System.out.println("Item removed");
} else {
System.out.println("name not found");
}
}