java8流收集不同的列表

斯库玛

我想在过滤后将输入列表转换为其他列表。请让我们知道如何在java8流中实现。

我尝试了如下操作,它在collect()的getOutput()中给出了编译错误“ p无法解析为变量”。

List<Output> outputList= inputList.stream()
                    .filter(p ->  p.param1==10)                     
                    .collect(Collectors.toList(getOutput(p)));  


private Output getOutput(Input inp){
 Output out = new Output();
 out.value1= inp.value1;
 ---
 ---
}
乔治

正如评论所建议的,您可以执行以下操作

List<Output> outputList= inputList.stream()
                    .filter(p ->  p.param1==10) 
                    .map(j -> getOutput(j))
                    .collect(Collectors.toList());

因此,在过滤器之后,您可以将对象转换为其他类型,最后进行收集。另外,您可以使用映射收集器将您的对象转换为另一种对象,然后按如下所示收集它们

List<Output> outputList= inputList.stream()
        .filter(p ->  p.param1==10) 
        .collect(Collectors.mapping(j -> getOutput(j), Collectors.toList()));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章