Java如何并行地迭代HashMap的所有值

我有一个HashMap,其键的类型为HashSet,值的类型为ArrayList。

一旦将所有键值对插入到Map中。我想对每个键及其值进行迭代以进行进一步的处理,而不仅仅是打印,它将在进一步的处理中使用,在该进一步的处理中,键和值作为String参数传递。

所以我在想这是否完全可能,就像不是一次在Map中一次迭代每个键值一样,即等待First迭代结束整个过程,然后才开始下一次迭代。相反,如果可以并行地迭代所有键值而不必等待其轮换,那么总体结果将更快。迭代的顺序并不重要。它应该只并行读取所有键值对。

我尝试了Stream API,但这只是并行打印所有迭代值,但是在进一步的过程中,它并没有达到我的期望,也许是因为我不熟悉Streams,所以做错了什么。如果使用可用的内置函数或类无法实现此目的,那么即使是第三方Jars(Apache-commons)也可以。

系统细节

RAM - 32 GB
CPU - Intel(R)Xeon(R) CPU-E5 v4 @2.30GHz
Java 8 

这是我到目前为止尝试过的代码

String jobId = "J1";
Map<Set<String>,List<String>> map_batch_result_details = new HashMap<Set<String>,List<String>>();
Set<String> hs_batchesId= new HashSet<String>();
List<String> list_resultId = new ArrayList<String>();

hs_batchesId.add("B1"); 
hs_batchesId.add("B2"); 
hs_batchesId.add("B3");

list_resultId.add("R1");
list_resultId.add("R2");
list_resultId.add("R3");


map_batch_result_details.put(hs_batchesId, list_resultId); 

map_batch_result_details.entrySet().stream().forEach(e -> {
System.out.format("key: %s, value: %s%n", e.getKey(), e.getValue());  // for printing results using stream without iterating each row sequentially instead iterates it parallely

 InputStream inputStream =  Connection.getQueryResultStream(jobId, e.getKey().toString(), e.getValue().toString());
/*
getQueryResultStream expects one batchId which is  <Key> of Map but it needs it in String so I am using toString
similarly third parameter expects one resultId which is <value> of Map again in String so toString
But Code fails as it is not passing 1 key and 1 value, rather it passes all key values at once in single call.

*/

});