【发布时间】:2016-06-20 07:59:02
【问题描述】:
我有一个 Node 数组,它们都有一个 Variable 列表:
Node[] arguments; // argument[i].vars() returns List<Variable>
我想创建一个包含所有变量的列表。我今天是这样做的:
List<Variable> allVars = new ArrayList<>();
for (Node arg : arguments) {
allVars.addAll(arg.vars());
}
我可以使用流做同样的事情吗?
我已经尝试过了,但它返回给我一个List<List<Variable>>,而我想要一个带有所有列表元素的List<Variable>(使用addAll):
List<List<Variable>> vars = Arrays.asList(arguments).stream()
.map(Node::vars)
.collect(Collectors.toList());
【问题讨论】:
-
你也可以用
Stream.of(arguments)代替Arrays.asList(arguments).stream()
标签: java arraylist collections java-stream