可以使用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方法,对吗?

09-27 17:31