3

我正在使用谷歌的 ImmutableList 类http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableList.html

我正在寻找一种方法,它采用现有的 ImmutableList 和一个额外的元素(相同类型),并返回一个包含旧元素和新元素的新ImmutableList。

也许我在文档中遗漏了一些明显的东西?

4

2 回答 2

6
public static final ImmutableList<Foo> result
   = new ImmutableList.Builder<Foo>()
       .addAll(originalList)
       .add(new Foo())
       .build();
于 2015-03-04T12:01:57.567 回答
2

您可以通过以下方式进行操作:

ImmutableList<YourType> newList = ImmutableList.copyOf(
    Iterables.concat(existingList, ImmutableList.of(newElement))
);

编辑: @JB Nizets 解决方案看起来更具可读性:)

于 2015-03-04T12:02:54.570 回答