Joe*_*oel 3 java collections java-8 java-stream collectors
实现以下目标的最佳,最便宜,最佳性能的方法是什么:
我有一个CollectionObjects myObject,它提供了一个返回一组整数的方法.我想将集合中的所有项目添加到新集合中.
LinkedList<myObject> ll = new LinkedList<>();
//fill the list bla bla
Set<Integer> result = ll.stream()
.map(f -> f.getTheSet())
.flatMap(Set::stream)
.collect(Collectors.toCollection(TreeSet::new));
System.out.println(result.toString());
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来获得包含所有对象的所有整数的结果集?我想避免使用flatMap命令"解压缩集合" .相反,我想到的事情.addAll或者最终无关紧要,因为.addAll无论如何解开?
Mis*_*sha 10
您可以收集使用addAll带有三个参数collect:
Set<Integer> result = ll.stream()
.map(MyObject::getTheSet)
.collect(HashSet::new, Set::addAll, Set::addAll);
Run Code Online (Sandbox Code Playgroud)
HashSet::new创建一个新容器,Set::addAll将每个集合添加到容器中,Set::addAll如果要并行运行此流,则第二个合并两个容器.
(或者TreeSet::new如果您特别想要,请使用TreeSet)
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |