【问题标题】:Fast way to Serialize a HashMap序列化 HashMap 的快速方法
【发布时间】:2012-02-25 01:16:28
【问题描述】:

我正在寻找一种快速简便的方法来序列化 HashMap。我知道 Object(Out|In)putStreams,但据我所知它们相当慢。我尝试使用 GSON,但我不喜欢指定反序列化的类型(像往常一样,谁不喜欢类型擦除)。

我不使用 XStream 的原因:我有几个巨大的(250k 元素)int 数组,我也必须对其进行序列化。而且我不希望每个元素的 开销。

哈希图很短(100-200 个元素)。

【问题讨论】:

  • 键值的类型有哪些?
  • 看看MessagePack
  • 如果性能是一个问题,您是否考虑过通过 JNI 使用本机实现?
  • 内置序列化会简单得多,而且可能是最好的,直到您知道地图的序列化时间是不可接受的。你量过吗?您还可以为大型对象实现一些自定义序列化。

标签: java serialization hashmap


【解决方案1】:

问题通常在于键和值的序列化。根据你有什么,你可以这样写

DataOutputStream dos = 
Map<K, V> map = 
dow.writeInt(map.size());
for(Entry<K, V> entry: map.entrySet()) {
    dos.writeXxxx(entry.getKey());
    dos.writeXxxx(entry.getValue());
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-29
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多