可以使用Stream | Map做到这一点,这样我就不需要将结果放置在外部HashMap中,而是可以使用.collect(Collectors.toMap(...))来收集结果了; ?
Map<ReportType, Long> rep = new HashMap<>(); // result is here
Arrays.stream(rTypes).forEach(r -> rep.put(r.reportType, r.calcValue()));
r.calcValue()
计算新结果的位置,然后将其放置在map中。 最佳答案
当然,您可以在此处使用Collectors#toMap()
。假设rTypes
包含Report
个实例:
Map<ReportType, Long> rep = Arrays.stream(rTypes)
.collect(Collectors.toMap(Report::getReportType, Report::calcValue));
(您有
getReportType
方法,对吗?