从 Iterable 创建 ImmutableList

Pun*_*cky 2 java guava java-8

我需要从 an 中的每个元素获取一个对象Iterable并将其添加到List.

我可以使用下面的代码来做到这一点。ImmutableList但是,有没有什么方法可以在不显式实例化的情况下创建 Guava List

List<Data> myList = new ArrayList<>();
myIterable.forEach(val ->
  myList.add(val.getMetaData())
);
Run Code Online (Sandbox Code Playgroud)

Lou*_*man 7

要将函数应用于每个元素并将其转换为ImmutableList,今天的最佳实践是

Streams.stream(myIterable).map(Value::getMetaData)
  .collect(ImmutableList.toImmutableList());
Run Code Online (Sandbox Code Playgroud)