hashmap和hashset的序列化问题

   2024-10-07 6130
核心提示:在Java中,HashMap和HashSet都是实现了Serializable接口的类,因此它们都可以被序列化。序列化是将对象转换为字节流的过程,以便

在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异常。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号