关于createCreativeUnit方法的思考
来源:5-19 创意与推广单元关联服务功能实现

mapper
2019-02-16
课程中获取两个id集合的代码是:
List<Long> unitIds = request.getUnitItems().stream()
.map(CreativeUnitRequest.CreativeUnitItem::getUnitId)
.collect(Collectors.toList());
List<Long> creativeIds = request.getUnitItems().stream()
.map(CreativeUnitRequest.CreativeUnitItem::getCreativeId)
.collect(Collectors.toList());
这样的话,request.getUnitItems()这个集合实际上是遍历了两次,对性能上是有损耗的。
感觉用下面这段代码会更好,只遍历一次集合就获取到了两个id的集合:
List<Long> creativeIds = new ArrayList<>();
List<Long> unitIds = new ArrayList<>();
request.getItems().forEach(i -> {
creativeIds.add(i.getCreativeId());
unitIds.add(i.getUnitId());
});
写回答
1回答
-
同学你好:
你这里的思考是非常好的,提出的优化方法也是合理的。但是,由于这样的请求方法,一次性携带的数据不会很多,一次遍历和多次遍历耗时是没有太大差别的。如果是非常多的数据,那么,使用你这里提出的思路是更加合理的。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
212019-02-16
相似问题