Java 8:有效地将List中的值放到Map中

时间:2015-11-26 21:42:02

标签: java java-8

例如,我有以下代码:

Map<Student, Integer> rating = new HashMap<>();
...
for (Student student : studentsList) {
    rating.put(student, student.getRate());
}

我可以使用Java 8工具提高效率吗?

我已经尝试过Java8的forEach方法:

studentsList.forEach(s -> rating.put(s, s.getRate()));

但似乎它更贵。如果我们切换到rating方法(Standart forEach: 250 ms ,Java8&#39),将1M学生放入forEach地图的两种方法的测试显示性能下降10% ; s forEach: 270 ms

UPD: Per Paul Boddington 的提案,我试过了:

studentsList.stream().collect(Collectors.toMap(s -> s, Student::getRate))

结果在上述方法中效果最差。

0 个答案:

没有答案