hashmap怎么序列化的
时间: 2023-11-28 16:44:08 浏览: 58
HashMap可以通过序列化来实现持久化存储。Java中的序列化是将对象转换为字节流的过程,而反序列化则是将字节流转换为对象的过程。因此,我们可以将HashMap序列化为字节流,然后在需要时反序列化为HashMap对象。下面是一个简单的示例:
```java
import java.io.*;
import java.util.HashMap;
public class SerializeHashMap {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("Alice", 25);
map.put("Bob", 30);
map.put("Charlie", 35);
try {
// 将HashMap序列化为字节流
FileOutputStream fos = new FileOutputStream("hashmap.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(map);
oos.close();
fos.close();
// 从字节流中反序列化为HashMap对象
FileInputStream fis = new FileInputStream("hashmap.ser");
ObjectInputStream ois = new ObjectInputStream(fis); HashMap<String, Integer> deserializedMap = (HashMap<String, Integer>) ois.readObject();
ois.close();
fis.close();
// 验证反序列化后的HashMap对象是否与原始对象相同
System.out.println(map.equals(deserializedMap)); // 输出:true
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
阅读全文