【发布时间】:2018-10-08 04:13:19
【问题描述】:
我有一个列表和一个指向列表元素的指针。有时我需要:
- 在队列末尾追加一个值
- 从队列头部移除一个值
- 使指针前进到列表中的下一个值
即:
- 从 WRITE 的角度来看,它是一个队列。
- 从 READ 的角度来看,它是一个列表。
如果我使用普通的迭代器,我会在修改队列时得到 ConcurrentModificationException;如果我使用 ListIterator,我只能在迭代器位置删除/添加值。
有什么标准的数据结构可以用来实现这一点吗?
【问题讨论】:
-
你是在不同线程同时读写吗?
-
可以分享一下你目前的实现代码吗?
-
@assylias 我在单线程上
-
参见
java.util.LIstIterator,以及返回一个的各种方法。 -
@Jack 那么它应该是可以解决的。你能分享一个抛出异常的代码示例吗?