我有以下嵌套 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/