gpt4 book ai didi

Java ListIterator 的鲁棒性

转载 作者:行者123 更新时间:2023-11-30 06:04:20 27 4
gpt4 key购买 nike

我有一个简单的 Java LinkedList,它有 10 个元素。在这种状态下,我得到一个普通的 ListIterator,比如 .listIterator(3)。如果我随后将其他元素插入/删除到列表中,而不触及具有 ListIterator (也不是迭代器)的元素,则 ListIterator 仍然有效吗?

最佳答案

如果您在 ListIterator 自己的方法之外修改 java.util.LinkedList,那么迭代器就会被掺假,并会抛出 ConcurrentModificationException如果您尝试再次使用它。

这在 javadoc for linked list 中有介绍。 :

The iterators returned by this class's iterator and listIterator methods are fail-fast: if the list is structurally modified at any time after the iterator is created, in any way except through the Iterator's own remove or add methods, the iterator will throw a ConcurrentModificationException. Thus, in the face of concurrent modification, the iterator fails quickly and cleanly, rather than risking arbitrary, non-deterministic behavior at an undetermined time in the future.

关于Java ListIterator 的鲁棒性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764114/

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