首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在迭代java期间修改集合

在迭代 Java 期间修改集合时,可以考虑使用迭代器(Iterator)或者增强型 for 循环(Enhanced for loop)来避免并发修改异常(ConcurrentModificationException)。

迭代器(Iterator)是一种遍历集合元素的方式,它允许在遍历过程中对集合进行修改,而不会抛出 ConcurrentModificationException 异常。增强型 for 循环也是一种常用的遍历集合元素的方式,它也可以与迭代器一起使用来避免并发修改异常。

以下是使用迭代器和增强型 for 循环修改集合的示例代码:

代码语言:java
复制
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        // 使用迭代器修改集合
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            if (element.equals("A")) {
                iterator.remove();
                list.add("D");
            }
        }

        // 使用增强型 for 循环修改集合
        for (String element : list) {
            if (element.equals("B")) {
                list.remove(element);
                list.add("E");
            }
        }

        System.out.println(list);
    }
}

在上面的示例代码中,我们首先创建了一个包含三个元素的列表,然后使用迭代器和增强型 for 循环分别对列表进行修改。在使用迭代器修改列表时,我们使用了 iterator.remove() 方法来删除元素,然后使用 list.add() 方法添加新元素。在使用增强型 for 循环修改列表时,我们直接使用 list.remove()list.add() 方法来删除和添加元素。

需要注意的是,在使用迭代器和增强型 for 循环修改集合时,必须确保集合的类型是可变的,例如 ArrayList 或 LinkedList,否则会抛出 UnsupportedOperationException 异常。此外,在使用迭代器修改集合时,不能同时使用 list.remove()list.add() 方法,否则也会抛出 ConcurrentModificationException 异常。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

20分18秒

Java零基础-194-Collection集合迭代

7分13秒

115 - Java入门极速版 - 进阶语法 - 集合 - 迭代器

3分43秒

day23_集合/09-尚硅谷-Java语言高级-迭代器Iterator的执行原理

7分33秒

day23_集合/11-尚硅谷-Java语言高级-Iterator迭代器remove()的使用

3分43秒

day23_集合/09-尚硅谷-Java语言高级-迭代器Iterator的执行原理

7分33秒

day23_集合/11-尚硅谷-Java语言高级-Iterator迭代器remove()的使用

3分43秒

day23_集合/09-尚硅谷-Java语言高级-迭代器Iterator的执行原理

7分33秒

day23_集合/11-尚硅谷-Java语言高级-Iterator迭代器remove()的使用

23分5秒

day24_集合/11-尚硅谷-Java语言高级-HashMap在JDK7中的源码分析

23分40秒

day24_集合/12-尚硅谷-Java语言高级-HashMap在JDK8中的源码分析

23分5秒

day24_集合/11-尚硅谷-Java语言高级-HashMap在JDK7中的源码分析

23分40秒

day24_集合/12-尚硅谷-Java语言高级-HashMap在JDK8中的源码分析

领券