gpt4 book ai didi

java - 如何使用 Streams 将一种类型的列表转换为另一种类型的列表?

转载 作者:行者123 更新时间:2023-12-01 06:42:42 26 4
gpt4 key购买 nike

我想使用Stream实现以下目标:

我有 Input 的列表和Output具有完全不同结构的对象。

通过 for 循环,我可以转换 List<Input>List<Output>如下:

for (Input input : listOfInput) {
Output currentOutPutInstance = new Output();
currentOutPutInstance.setArg1(input.getArg2());
currentOutPutInstance.setArg2(input.getArg7());
listOfOutPuts.add(currentOutPutInstance);
}

对于流,我尝试了这样的事情:

private List<Output> getOutPutListFromInputList(List<Input> inPutList) {
List<Output> outPutList = new ArrayList<Output>();
outPutList = listOfPoolsInRun.stream.filter(<Somehow converting the input into output>)
.collect(Collectors.toList());
}

注意:我不确定哪个 Stream我应该使用的方法。我用过filter只是为了显示一些虚拟代码。

最佳答案

使用map()改造Stream<Input>Stream<Output> :

private List<Output> getOutPutListFromInputList(List<Input> inPutList)
{
return listOfPoolsInRun.stream()
.map(input -> {
Output out = new Output();
out.setArg1(input.getArg2());
out.setArg2(input.getArg7());
return out;
})
.collect(Collectors.toList());
}

如果 Output 中有适当的构造函数,则可以缩短此时间。类:

private List<Output> getOutPutListFromInputList(List<Input> inPutList) 
{
return listOfPoolsInRun.stream()
.map(input -> new Output(input.getArg2(),input.getArg7()))
.collect(Collectors.toList());
}

关于java - 如何使用 Streams 将一种类型的列表转换为另一种类型的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788832/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com