Java 序列化HashMap的快速方法
我正在寻找一种快速简便的方法来序列化哈希映射。我知道这个物体是从外到内的,但据我所知,它们相当慢。我尝试使用GSON,但我不喜欢指定反序列化的类型(像往常一样,谁不喜欢类型擦除) 我不使用XStream的原因是:我有几个巨大的(250k个元素)int数组,我也必须序列化它们。我不希望每个元素都有Java 序列化HashMap的快速方法,java,serialization,hashmap,Java,Serialization,Hashmap,我正在寻找一种快速简便的方法来序列化哈希映射。我知道这个物体是从外到内的,但据我所知,它们相当慢。我尝试使用GSON,但我不喜欢指定反序列化的类型(像往常一样,谁不喜欢类型擦除) 我不使用XStream的原因是:我有几个巨大的(250k个元素)int数组,我也必须序列化它们。我不希望每个元素都有的开销 哈希映射很短(100-200个元素)。通常问题在于键和值的序列化。根据你所拥有的,你可以这样写 DataOutputStream dos = Map<K, V> map = dow
哈希映射很短(100-200个元素)。通常问题在于键和值的序列化。根据你所拥有的,你可以这样写
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());
}
DataOutputStream dos=
地图=
dow.writeInt(map.size());
for(条目:map.entrySet()){
dos.writexxx(entry.getKey());
dos.writexxx(entry.getValue());
}
键和值的类型是什么?看看性能是否是一个问题,您是否考虑过通过JNI使用本机实现请注意这里的基准:内置序列化将更加简单,并且可能是最好的,直到您知道地图的序列化时间是不可接受的。你量过尺寸了吗?您还可以仅为大型对象实现一些自定义序列化。