java - 如何序列化java中实现的链表?

标签 java serialization

我在网上读到,通过将派生对象声明为 transient ,可以省略派生对象的序列化。但是,在链接列表的情况下,链接是对象之间的内存引用。那么,我应该将其转换为数组并存储数组表示形式吗?

最佳答案

以下是 Java 序列化 LinkedList 的方式:它获取所有元素并将它们连同大小一起写入 ObjectOutputStream。当然,还声明了 header 条目 transient

查看LinkedListwriteObjectreadObject方法:

// Write out any hidden serialization magic
s.defaultWriteObject();

// Write out size
s.writeInt(size);

// Write out all elements in the proper order.
for (Entry e = header.next; e != header; e = e.next)
    s.writeObject(e.element);

关于java - 如何序列化java中实现的链表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5317876/

相关文章:

java - Pydoop 作业未运行

java - Tomcat JMX 连接 - 身份验证失败

c# - 未序列化的结构列表列表。 System.RuntimeType 由于其保护级别而无法访问。只能处理公共(public)类型

c# - 用于二进制数据的类似 FileHelpers 的数据导入/导出实用程序?

android - 如何将json firestore时间戳序列化为日期?

Java ArrayList<String[]>

java - 多个继承层次结构的覆盖函数

Java:创建文件或目录(如果不存在)

django - 如何使用DjangoRestFramework序列化为多个模型

c# - 如果可为 null 的属性为 null 或为空,如何从序列化中忽略它?