2012-02-25 63 views
1

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

reasion我不使用XStream:我有几个巨大的(250k元素)int数组,我也必须序列化。我不想为每个元素开销< int> </int>。

散列图很短(100-200个元素)。

+0

键和值的类型是什么? – 2012-02-25 01:18:07

+1

看看[MessagePack](http://msgpack.org/) – rid 2012-02-25 01:18:11

+1

如果性能是一个问题,你有没有想过通过JNI使用本地实现? – Borealid 2012-02-25 01:18:23

回答

3

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

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()); 
}