如何在scala中单独存储HashMap值?

时间:2014-11-05 17:15:49

标签: scala serialization hashmap

我有一个scala hashmap,它由一个应用程序生成并由另一个应用程序使用。 hashmap很大,比如100MB或更大。

var actMap = new collection.mutable.HashMap[String, Seq[Object]];

目前整个地图在第二个应用程序启动时被加载到内存中。我试图只是在内存中加载密钥,稍后在地图中查找密钥时,它应该给出存储的值。磁盘。反正有没有实现这个目标?如果使用标准序列化,单独保存每个值并即时访问它们将花费大量时间。有哪些替代方案?

1 个答案:

答案 0 :(得分:3)

您可能想要考虑使用内存映射文件。你可以自己动手。

假设您可以稍微更改界面并使用第三方库,您可以查看

http://software.clapper.org/javautil/api/org/clapper/util/misc/FileHashMap.html

https://github.com/bmc/javautil/blob/master/src/main/java/org/clapper/util/misc/FileHashMap.java