返回一个新的 ImmutableList,它是一个现有列表加上一个额外的元素
Returning a new ImmutableList that is an existing list plus an extra element
我正在使用 Google 的 ImmutableList class http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableList.html
我正在寻找一种方法,它采用现有的 ImmutableList 和一个额外的元素(相同类型),以及 returns 一个 new ImmutableList 包含旧元素加新元素。
也许我在文档中遗漏了一些明显的东西?
public static final ImmutableList<Foo> result
= new ImmutableList.Builder<Foo>()
.addAll(originalList)
.add(new Foo())
.build();
您可以按照以下方式进行:
ImmutableList<YourType> newList = ImmutableList.copyOf(
Iterables.concat(existingList, ImmutableList.of(newElement))
);
编辑: @JB Nizets 解决方案看起来更具可读性:)
我正在使用 Google 的 ImmutableList class http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableList.html
我正在寻找一种方法,它采用现有的 ImmutableList 和一个额外的元素(相同类型),以及 returns 一个 new ImmutableList 包含旧元素加新元素。
也许我在文档中遗漏了一些明显的东西?
public static final ImmutableList<Foo> result
= new ImmutableList.Builder<Foo>()
.addAll(originalList)
.add(new Foo())
.build();
您可以按照以下方式进行:
ImmutableList<YourType> newList = ImmutableList.copyOf(
Iterables.concat(existingList, ImmutableList.of(newElement))
);
编辑: @JB Nizets 解决方案看起来更具可读性:)