我要执行以下操作:
List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList());
但是以某种方式得到的列表是Guava的
ImmutableList
的实现。我知道我能做
List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList());
List<Integer> immutableList = ImmutableList.copyOf(list);
但我想直接收集。我试过了
List<Integer> list = IntStream.range(0, 7)
.collect(Collectors.toCollection(ImmutableList::of));
但它引发了一个异常(exception):
最佳答案
可接受的Alexis答案中的toImmutableList()
方法现在包含在Guava 21中,可以用作:
ImmutableList<Integer> list = IntStream.range(0, 7)
.boxed()
.collect(ImmutableList.toImmutableList());
编辑:从
@Beta
中删除了ImmutableList.toImmutableList
以及Release 27.1(6242bdd)中的其他常用API。