gpt4 book ai didi

java - next() 已耗尽元素时的并发修改

转载 作者:行者123 更新时间:2023-12-02 09:34:36 25 4
gpt4 key购买 nike

一直在阅读Iterators最近。假设我们要为给定的容器类构建一个快速失败迭代器。在某个时间点,以下代码已执行;

Iterator<Object> it = myContainer.iterator();
while(it.hasNext())
System.out.println(it.next());

然后,我们使用名为 remove(int index) 的方法对 myContainer 进行修改:

myContainer.remove(2);      // Assume at least 3 elements contained

如果现在调用 it.next(),并且根据官方文档,我们是否应该抛出 ConcurrentModificationException 的实例,或者NoSuchElementException?也许更重要的是,这是否可以从官方文档中推断出来?

最佳答案

您应该抛出一个ConcurrentModificationExceptionNoSuchElementException 表示迭代器中不再有元素。当您遇到并发修改时,它总是会否决 NoSuchElementException。至少 ArraylistLinkedList 是如何做到这一点的。

关于java - next() 已耗尽元素时的并发修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57643265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com