仅使用JDK8 + Lambdas加入相同对象类型的列表

时间:2015-04-12 22:15:10

标签: java collections lambda java-8 java-stream

有没有办法只使用JDK8 + Lambdas加入两个相同类型的列表(比如List<Computer> list1, list2;)?你能提供一个例子吗?

2 个答案:

答案 0 :(得分:8)

您可以将它们平面映射以获得组合流或列表:

Stream<Computer> joined = Stream.of(list1, list2)
                                .flatMap(List::stream);
List<Computer> list = joined.collect(toList());

答案 1 :(得分:8)

可替换地,

Stream<Computer> joined = Stream.concat(list1.stream(), list2.stream());

不确定相对于assylias的答案是否有任何优势或劣势。这可能更容易理解。但是,这并没有使用任何lambdas。我怀疑OP也可能意味着“或流API”。