gpt4 book ai didi

collections - java8如何收集数据并作为对象的属性添加到列表中

转载 作者:行者123 更新时间:2023-12-01 08:51:27 25 4
gpt4 key购买 nike

在java8之前我们这样写代码:

    List<ResultDTO> resources = Lists.newArrayList();        

List<Product> productList = details.getProducts();
for (Product product : productList) {
ResultDTO result = new ResultDTO();
result.setName(product.getName);
result.setNumber(product.getNumber);

resources.add(resourceDetail);
}

Java8 我是这样写的:

List<ResultDTO> resources = Lists.newArrayList();
details.getProducts.stream().forEach( product -> {
ResultDTO result = new ResultDTO();
result.setName(product.getName);
result.setNumber(product.getNumber);

resources.add(resourceDetail);
} );

不知道在我们遍历流创建ResultDTO对象时是否有一些提示设置它的属性然后到一个列表?

提前致谢。

最佳答案

在流操作中创建和修改列表是一种反模式。您应该让流为您创建列表:

List<ResultDTO> resources = 
details.getProducts()
.stream()
.map(this::createResultDTO)
.collect(Collectors.toList());

createResultDTO 方法将从产品创建一个 ResultDTO(您当然可以将其代码内联到 map 中,但它的可读性要差得多)。

关于collections - java8如何收集数据并作为对象的属性添加到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40819080/

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