hashmap和hashset的序列化问题

avatar
作者
猴君
阅读量:0

在Java中,HashMap和HashSet都是实现了Serializable接口的类,因此它们都可以被序列化。序列化是将对象转换为字节流的过程,以便将其保存到文件中或通过网络进行传输。

要序列化HashMap或HashSet,只需要将它们写入ObjectOutputStream中,如下所示:

import java.io.*; import java.util.HashMap; import java.util.HashSet;  public class SerializationExample {     public static void main(String[] args) {         try {             // Serialize a HashMap             HashMap<String, Integer> map = new HashMap<>();             map.put("a", 1);             map.put("b", 2);             ObjectOutputStream mapOut = new ObjectOutputStream(new FileOutputStream("map.ser"));             mapOut.writeObject(map);             mapOut.close();              // Serialize a HashSet             HashSet<String> set = new HashSet<>();             set.add("apple");             set.add("banana");             ObjectOutputStream setOut = new ObjectOutputStream(new FileOutputStream("set.ser"));             setOut.writeObject(set);             setOut.close();         } catch (IOException e) {             e.printStackTrace();         }     } } 

要反序列化HashMap或HashSet,只需要从ObjectInputStream中读取对象,如下所示:

import java.io.*; import java.util.HashMap; import java.util.HashSet;  public class DeserializationExample {     public static void main(String[] args) {         try {             // Deserialize a HashMap             ObjectInputStream mapIn = new ObjectInputStream(new FileInputStream("map.ser"));             HashMap<String, Integer> map = (HashMap<String, Integer>) mapIn.readObject();             mapIn.close();             System.out.println(map);              // Deserialize a HashSet             ObjectInputStream setIn = new ObjectInputStream(new FileInputStream("set.ser"));             HashSet<String> set = (HashSet<String>) setIn.readObject();             setIn.close();             System.out.println(set);         } catch (IOException | ClassNotFoundException e) {             e.printStackTrace();         }     } } 

需要注意的是,当对HashMap或HashSet进行序列化和反序列化时,它们所包含的所有对象也必须实现Serializable接口,否则会抛出NotSerializableException异常。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!