我正在尝试遍历相同的数据,但只想在必要时加载数据。我还想在多个并发迭代器中重用获取的数据。
是否有一个对象或模式允许我创建一个底层数据,如果它用完有机会获取更多数据,但在多个实例中使用相同的获取数据?该列表应该能够同时使用。我碰巧正在使用Java。
我目前创建了一个迭代器,它返回可以使用的值,如果它的缓冲区中的数据用完,它会查找更多要返回的数据。不幸的是,这意味着如果对象有多个实例,它将为每个实例处理一次数据。
如果我使用 LinkedList,我会担心 ConcurrentModificationError。
更新:下面的答案确实讨论了实现这一点的有效方法,但我遇到了很多由一般概念引起的问题(非标准,混淆实施者,不值得混淆的好处)。虽然我仍然相信这是一个有趣且有价值的途径,但它可能存在问题。和以往一样,在问“如何”做某事之前,你应该问“是否”你应该这样做。