Java 如何获得从最后一个元素开始的前向迭代器

Java 如何获得从最后一个元素开始的前向迭代器,java,linked-list,iterator,Java,Linked List,Iterator,我有一个链接列表。假设我在末尾插入一个元素,我想保存它插入的位置,这样我就可以在它旁边的元素上调用一个函数,无论以后如何进入这个集合。使用Java迭代器可以吗?非常感谢 回想一下,我对反向迭代不感兴趣。应用程序将是多线程的,因此有一个奇怪的要求。您可以使用index=size()-1调用List#listIterator(int-index),以获取列表当前最后一个元素的迭代器。见文件: 然而,你将被困在那里 无论您使用的列表实现是否是线程安全的(LinkedList、ArrayList和大多数

我有一个
链接列表
。假设我在末尾插入一个元素,我想保存它插入的位置,这样我就可以在它旁边的元素上调用一个函数,无论以后如何进入这个集合。使用Java迭代器可以吗?非常感谢

回想一下,我对反向迭代不感兴趣。应用程序将是多线程的,因此有一个奇怪的要求。

您可以使用index=
size()-1调用
List#listIterator(int-index)
,以获取列表当前最后一个元素的迭代器。见文件:

然而,你将被困在那里

无论您使用的列表实现是否是线程安全的(LinkedList、ArrayList和大多数其他实现都是如此),并且在列表结构修改后尝试使用迭代器都将导致抛出ConcurrentModificationException。 当列表的大小发生变化时,即在添加和删除列表时,列表在结构上会进行修改

或者,您正在使用的列表实现是线程安全的,在这种情况下,您无法保证迭代器在创建迭代器后将能够访问添加到列表中的元素。 例如,CopyOnWriteArrayList的情况就不是这样,对于它,迭代器在创建数据时(如快照)对数据进行迭代

您必须找到List的一个实现,该实现清楚地描述了这种行为,并在其文档中明确地说明了这一点。据我所知,至少在标准库中,不存在任何允许使用它的方法。

您可以使用index=
size()-1
调用
List#listIterator(int-index)
,以获取列表当前最后一个元素的迭代器。见文件:

然而,你将被困在那里

无论您使用的列表实现是否是线程安全的(LinkedList、ArrayList和大多数其他实现都是如此),并且在列表结构修改后尝试使用迭代器都将导致抛出ConcurrentModificationException。 当列表的大小发生变化时,即在添加和删除列表时,列表在结构上会进行修改

或者,您正在使用的列表实现是线程安全的,在这种情况下,您无法保证迭代器在创建迭代器后将能够访问添加到列表中的元素。 例如,CopyOnWriteArrayList的情况就不是这样,对于它,迭代器在创建数据时(如快照)对数据进行迭代


您必须找到List的一个实现,该实现清楚地描述了这种行为,并在其文档中明确地说明了这一点。据我所知,至少在标准库中不存在任何允许它的库。

关于
list.offerFirst(list.removeLast())
?关于
list.offerFirst(list.removeLast())
呢?