请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于createCreativeUnit方法的思考

课程中获取两个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 群随时交流、讨论,也非常感谢同学的支持! 

2 回复 有任何疑惑可以回复我~
  • 提问者 mapper #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-02-16 18:22:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信