【发布时间】:2012-06-28 23:37:17
【问题描述】:
如果有任何框架实现了具有以下行为的集合,我很感兴趣。
假设它最初包含:[1, 2, 3]
- 我迭代它(使用迭代器)并到达元素 2,现在我将 4 添加到末尾(集合现在将是 [1, 2, 3, 4])。
- 现在我创建一个新的迭代器并迭代集合,得到 [1, 2, 3, 4]
- 我继续使用第一个迭代器进行迭代,它只会给我 3 个并返回
- 现在重置第一个迭代器会给我 [1, 2, 3, 4](类似于创建一个新迭代器)。
同样适用于删除元素。如果我删除 3 而不是添加,第二个迭代器应该给我 [1, 2] 而第一个迭代器仍然给我 3 和结尾。
所以当我得到和迭代器时,我希望它给我创建迭代器时拥有的集合(即使我稍后迭代它,我会迭代一点并稍后继续),当我重置迭代器时,它会得到垃圾收集后它将更新到最新版本,我应该能够在不同时间创建多个迭代器实例,这些实例将根据创建迭代器时数组的内容提供不同的版本。
我需要它与多个线程一起工作,并且最好有一个高效的实现。
有谁知道此类集合的任何实现,还是我必须自己实现?
【问题讨论】:
标签: java collections frameworks concurrent-collections