Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从ArrayList中删除项目_Java_Arrays_Arraylist - Fatal编程技术网

Java 如何从ArrayList中删除项目

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

嗨,我正在尝试创建一个地址簿并将所有条目存储到arrayList。我我当前在从列表中删除项目时遇到问题。谁能帮帮我吗。 这是我的ArrayList,其中包含setter/getter和构造函数

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");
    }
}