java stream for hashmap



我正在从数据库中构建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文件写入磁盘,您将不会看到太大的区别。还请记住,这可能会改变处理村庄的顺序。

最新更新