2012-02-25 97 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()); 
}