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