Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 序列化HashMap的快速方法_Java_Serialization_Hashmap - Fatal编程技术网

Java 序列化HashMap的快速方法

Java 序列化HashMap的快速方法,java,serialization,hashmap,Java,Serialization,Hashmap,我正在寻找一种快速简便的方法来序列化哈希映射。我知道这个物体是从外到内的,但据我所知,它们相当慢。我尝试使用GSON,但我不喜欢指定反序列化的类型(像往常一样,谁不喜欢类型擦除) 我不使用XStream的原因是:我有几个巨大的(250k个元素)int数组,我也必须序列化它们。我不希望每个元素都有的开销 哈希映射很短(100-200个元素)。通常问题在于键和值的序列化。根据你所拥有的,你可以这样写 DataOutputStream dos = Map<K, V> map = dow

我正在寻找一种快速简便的方法来序列化哈希映射。我知道这个物体是从外到内的,但据我所知,它们相当慢。我尝试使用GSON,但我不喜欢指定反序列化的类型(像往常一样,谁不喜欢类型擦除)

我不使用XStream的原因是:我有几个巨大的(250k个元素)int数组,我也必须序列化它们。我不希望每个元素都有的开销


哈希映射很短(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使用本机实现请注意这里的基准:内置序列化将更加简单,并且可能是最好的,直到您知道地图的序列化时间是不可接受的。你量过尺寸了吗?您还可以仅为大型对象实现一些自定义序列化。