sku*_*mar -1 java-8 java-stream
我想在过滤后将输入列表转换为不同的列表。请知道如何在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;
---
---
}
Run Code Online (Sandbox Code Playgroud)
根据评论的建议,您可以执行以下操作
List<Output> outputList= inputList.stream()
.filter(p -> p.param1==10)
.map(j -> getOutput(j))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
因此,在过滤器之后,您将对象转换为其他类型并最终收集。或者,您可以使用映射收集器将您的对象转换为另一种类型,然后像下面这样收集它们
List<Output> outputList= inputList.stream()
.filter(p -> p.param1==10)
.collect(Collectors.mapping(j -> getOutput(j), Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2559 次 |
| 最近记录: |