哈希集序列化/克隆出现问题



为什么会失败?我将空HashSet的序列化形式与通过序列化+反序列化创建的克隆的序列化形式进行比较。

import org.apache.commons.lang3.SerializationUtils;
import static org.assertj.core.api.Assertions.assertThat;
...
final HashSet<String> hashSet = new HashSet<>();
assertThat(SerializationUtils.serialize(hashSet))
.containsExactly(SerializationUtils.serialize(SerializationUtils.clone(hashSet)));

将引发AssertionError。

哈希集中的某些内容必须未正确序列化/反序列化。你知道吗,具体是什么?我正在使用OpenJDK 8。

它与loadingFactor有关。如果Hashset是这样实例化的,那么它就可以工作:

new HashSet(0,0.75f);

最新更新