hashmap的java流

标签 java pdf hashmap java-stream

我正在构建一个 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 文件写入磁盘,您不会看到太大差异。另请记住,这可能会改变村庄的处理顺序。

关于hashmap的java流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49493408/

相关文章:

java - 我应该在哪里正确声明我的 "count"可用?

java - Selenium 使用 Java 旋转 iOS 设备

java - 根据自定义值对 HashMap 进行排序(例如,它是一个名为 DATA 的类)

Java:带参数的可运行 HashMap

java - 何时使用 @OneToMany 和 @ManyToOne 以及 MapStruct - 我得到递归无穷大

java - 如何检查枚举值是否等于?

shell - 如何使 emacs-org 导出以适合宽度的模式打开 pdf?

c# - PDFNet 尝试添加文本不起作用

pdf - 如何解释 "marked-content"运算符MP、PD、BMC、BDC和EMC

算法 - 检查给定单词是否存在单一类型