假设我们有一个由节点和指针表示的任意图,如下所示:
class Node
{
public ValueType data;
public ArrayList<Node> adj;
}
现在,我想复制它或在磁盘上写入/读取它(AKA 序列化/反序列化)。我也知道可以使用搜索算法+关联数组来完成。而且,事实证明这种方法称为swizzling。
这是我的问题:
我听说在 Java 中通过将类声明为 Serializable,这个特性是自动为你提供的。(这对我来说听起来像是一个魔法!)
这个说法正确吗?Java 是否会自动运行 BFS 来遍历图形并调整指针?换句话说,序列化/反序列化是否会为我克隆对象?(具有相同结构但新节点和更新指针的全新对象)
如果是,那么如果在某些情况下我只想复制指针怎么办?如果我想序列化对象只是为了保留原始指针怎么办?
我很欣赏对此的任何评论。:-)