我正在寻找实施List
的数据结构,这样我就可以重复使用多个列表中列表的部分。
为了说明这一点,请考虑以下三个列表:
如您所见,红色序列(42, 88, 76, 60
)和蓝色序列(21, 9, 47
)多次使用,每个序列代表作为其他列表的一部分共享的独立List。实际上,列表可能会更长。
列表只需只读,因为它将用作返回值。创建列表集合的过程将是唯一一个(允许)修改列表的过程(使用add(..)
操作等)。共享部分列表将使使用addAll(..)
(内部使用System.arraycopy(..)
)扩展复制列表元素变得多余。
是否有任何轻量级List
实施可满足我的需求?或者是否有一种相对简单的方法来实现自己的方法?
答案 0 :(得分:2)
对于Iterable
,Set
和Multiset
,Guava,Iterables.concat()
和Sets.union()
覆盖了Multisets.sum()
分别。遗憾的是,Lists
缺乏等效的方法。