我正在从数据库中构建Hashmap<Integer, POJO>
(可以包含超过10k记录(。然后,我需要在hashmap的遍历下调用PDF生成功能
for(Map.Entry<Integer, LocationPojo> village : allVillages.entrySet()) {
genPdf(stateCode, village.getValue().getDistrictCode().toString() , village.getValue().getBlockCode().toString(),
village.getValue().getVillageCode().toString(), village.getValue().getVillageNameEnglish(), villageFile);
}
是否可以使用java 8 stream api
来更快地处理上述数据?
您可以使用流来平行genPdf
调用:
allVillages.values().stream().parallel().forEach(village -> {
genPdf(stateCode, village.getDistrictCode().toString(), village.getBlockCode().toString(),
village.getVillageCode().toString(), village.getVillageNameEnglish(), villageFile);
});
这实际上加速处理是否取决于可以并行运行多少genPdf
。磁盘驱动器一次只能写一件东西,因此,如果genPdf
花费大部分时间将PDF文件写入磁盘,您将不会看到太大的区别。还请记住,这可能会改变处理村庄的顺序。