非常に大きなコレクションのフォルダオブジェクトを取得して外部のソースからコピーしています。それらはすべてフォルダIDと親フォルダIDを持っていますが、ツリー構造ではありません。それらを取得した後、それらを最上位ルートを持つツリーノードオブジェクトで整理します。ただし、1つまたは複数のフォルダが循環参照を作成し、どこでどのようにピンポイントをとるかを理解するのに問題があります。オブジェクトの大きなコレクションで循環オブジェクト参照を特定するにはどうすればよいですか?
循環参照を作成するときにJavaでエラーが発生することはありません。エラーは、私がjson形式にエンコードしようとすると、Webアプリケーションのクライアント側に送信する前に、stackoverflowエラーとして発生します。最初にエラーが表示されるので、どのオブジェクトがエラーの原因であるかはわかりません。
この特定の問題では、私は戦略を失っています。私の場合のように、循環オブジェクト参照を認識するための標準化された、あるいは良い方法がありますか?
フォルダに複数の親がありますか?あなたはフォルダーオブジェクトについて話します。厳密に1つの親を持つ子 - 親関係またはフォルダオブジェクトの集合ですか? – Persixty
厳密に1つの親。私は、エラーは私自身の精製コードであり、オブジェクト参照ではないことを知りました。 – KjetilNordin
私は不思議だった。各ノードに厳密に1つの親がある場合は、どのようにオブジェクトツリーを構築しているのか分かりませんでした。すべてのルートノードを見つけてから、インスタンス化された親を持つノードを追加し続けるなどしない限り、実行するのは難しいです。ループがある場合、ツリー内に親を持たないノードで最後まで到達します。それはループを形成するからです。アルゴリズムの終わりにループがほとんど現れます。 – Persixty