Java 哈希表和序列化

标签 java serialization

我在 Java 哈希表序列化中遇到了一个问题,这对我来说似乎不合逻辑,但我无法找出我正在使用的逻辑中的错误。这就是我正在做的事情,

Hashtable sspsrpData = new Hashtable();
for(int i=0;i<Constants.secondayStructures.length;i++) {
    SecondaryStructures ss = (SecondaryStructures)(data.get(Constants.secondayStructures[i]));
    sspsrpData.put(Constants.secondayStructures[i], new SecStrucPSRP(ss.getSecStruct(),ss.getLengthCounts())); 
}
    FileOutputStream fos = null;
    ObjectOutputStream out = null;
    fos = new FileOutputStream(Constants.sspsrpData);
    out = new ObjectOutputStream(fos);
    out.writeObject(sspsrpData); 

这段代码应该将3个键值对放入哈希表中,并且还应该序列化由此形成的哈希表。现在,当我尝试通过这段代码将它们检索回另一个程序时:

FileInputStream fis = null;
ObjectInputStream in = null;
fis = new FileInputStream(Constants.sspsrpData);
in = new ObjectInputStream(fis);
ssPsrp = (Hashtable)in.readObject();

生成的哈希表只有 2 个键值对。尽管哈希表中的计数为 3,但我只能在哈希表中看到 2 个键值对。我不明白出了什么问题!!

有人可以指出我哪里出错了吗?

谢谢,美好的一天, 桑托什

最佳答案

也许Constants.SecondayStructures[0] .equals( Constants.SecondayStructures[1] )Constants.SecondayStructures[1] .equals( Constants.SecondayStructures[2] )

在序列化对象之前尝试 sspsrpData.size(),以确保它在序列化之前具有合适的大小。

关于Java 哈希表和序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1672079/

相关文章:

java - Scala 中是否可以将 isAssignableFrom 与类型参数一起使用?

java - 在Java中对阿拉伯语单词进行排序

java - jackson : Losing type information

java - 在数据库中保留接口(interface)的 Java 实例

java - Android 获取序列化()

serialization - 在 React Native 中将 boolean 值存储/保存在 AsyncStorage 中

c# - 使用 DataContractJsonSerializer 将元素附加到文件中的 JSON 数组

java - 将套接字输出发送到 GUI 时出现问题

Java foreach - 通过 ArrayList 进行搜索

Java - 导入文本文档