共享部分列表以避免复制

时间:2016-02-09 20:41:37

标签: java list shared-memory

我正在寻找实施List的数据结构,这样我就可以重复使用多个列表中列表的部分

为了说明这一点,请考虑以下三个列表:

enter image description here

如您所见,红色序列(42, 88, 76, 60)和蓝色序列(21, 9, 47)多次使用,每个序列代表作为其他列表的一部分共享的独立List。实际上,列表可能会更长。

列表只需只读,因为它将用作返回值。创建列表集合的过程将是唯一一个(允许)修改列表的过程(使用add(..)操作等)。共享部分列表将使使用addAll(..)(内部使用System.arraycopy(..))扩展复制列表元素变得多余。

是否有任何轻量级List实施可满足我的需求?或者是否有一种相对简单的方法来实现自己的方法?

1 个答案:

答案 0 :(得分:2)

对于IterableSetMultisetGuavaIterables.concat()Sets.union()覆盖了Multisets.sum()分别。遗憾的是,Lists缺乏等效的方法。