基于此Question ...
我有此代码:
List<IdDTO> ids = collectionEntityDTO.stream().map(EntityDTO::getId).collect(Collectors.toList());
List<Long> codes = ids.stream().map(IdDTO::getCode).collect(Collectors.toList());
Long[] arrayCodes = codes.toArray(new Long[0]);
如何以这种简单的方式做到这一点?
答案 0 :(得分:4)
您的方法效率很低,只需将方法链接起来即可:
collectionEntityDTO.stream()
.map(EntityDTO::getId)
.map(IdDTO::getCode)
.toArray(Long[]::new);
这种方法更好,因为:
阅读正在发生的事情
如前所述,它效率更高,因为它并不急切 在每个中间步骤创建新的集合对象。