Java:从文件中保存和读取 HashMap

标签 java hashmap

我有以下嵌套 HashMap :

HashMap<Foo1, HashMap<Foo2, TObjectDoubleHashMap<Foo1>>> my_map;

TObjectDoubleHashmap 中有超过一百万个条目,生成大约需要一分钟。我可以选择哪些选项将其保存到文件中,这样就不需要每次都生成它?

到目前为止,我已将实际的键和值保存到文本文件中,然后再次将其加载到 HashMap 中,但这并没有节省太多时间。有没有更快的方法,例如使用序列化将其保存为对象?如果是这样,我需要做什么才能使我的 key 可序列化?

最佳答案

Is there a faster way such as saving it as an object using serialization?

映射的序列化只是写出键和匹配值。使用序列化并不比自己亲自进行序列化更快。 HashMap对其序列化数据的描述是:

The capacity of the HashMap (the length of the bucket array) is emitted (int), followed by the size (an int, the number of key-value mappings), followed by the key (Object) and value (Object) for each key-value mapping. The key-value mappings are emitted in no particular order.

您可以看到代码here .

What do I have to do to make my keys serializable?

要使对象可序列化,请实现 Serializable界面。您可能还想指定serialVersionUID。添加字段:

private static final long serialVersionUID = 1L;

关于Java:从文件中保存和读取 HashMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10779651/

相关文章:

java - 更新 NewRelic 版本在运行时抛出 AbstractMethodError

json - Google Dart删除DropDown重复项

Java 8 HashMap 无法正常工作

java - 使这个HashMap更高效的方法

java - 使用编码算法在 RAM 中存储 4x4 2D 矩阵,以实现最小的 RAM 空间使用

通过预编译类(包括 Main)重用 Java 代码

java - JFrame 和 JPanel 的背景颜色不同

java - 运行 simpleSSL 客户端时为 "java.net.SocketException: Connection reset"

java - 使用条件转换 HashMap 中的 Stream

Java:迭代 BiMap - 给我带来了一些问题