次のようなノードとポインターで表される任意のグラフがあるとします。
class Node
{
public ValueType data;
public ArrayList<Node> adj;
}
ここで、そのコピーを取得するか、ディスクに書き込み/読み取りを行いたいと考えています (AKA シリアライズ/デシリアライズ)。また、検索アルゴリズム + 連想配列を使用して実行できることも知っています。そして、この方法はスウィズリングと呼ばれていることがわかりました。
ここに私の質問があります:
Java では、クラスを Serializable として宣言することにより、この機能が自動的に提供されると聞いています。(私には魔法のように聞こえます!)
この記述は正しいですか?Java は自動的に BFS を実行してグラフをトラバースし、ポインターをスウィズルしますか? 言い換えれば、シリアル化/逆シリアル化はオブジェクトのクローンを作成しますか? (同じ構造で新しいノードと更新されたポインタを持つ完全に新しいオブジェクト)
はいの場合、ポインタをコピーしたいだけの場合はどうなりますか? 元のポインターを保持するためだけにオブジェクトをシリアル化したい場合はどうすればよいですか?
これについてのコメントをお待ちしております。:-)