2011-07-08 14 views
0

Javaでは配列リストのバックアップを取ることが可能かどうか疑問に思っていましたか?JavaのArraylistから親Arraylistを参照する

「aMainSection」と「aChildSectionは、」私はだ値がそれに保存されている取得するまで「aChildSection」から遡ることができ、親セクション '、typeセクションの両方の配列リストです
Section aSection = new Section(); 
aMainSection.get(0).aChildSection.add(aSection); 

:私はのようなものを持っている場合、意味aMainSection '?または、これを行うセクション・クラス内にある種のメソッドを作成する必要がありますか?提供されているお手伝いをありがとう。

+0

'aMainSection'が' Section'オブジェクトの 'ArrayList'である場合、' aMainSection.get(0) 'は' Section'オブジェクトを与えます。 'aMainSection.get(0).aChildSection'をどうやって使うことができますか? –

+1

@ Eng.Fouadこれは実際に 'aChildSection'フィールドのアクセスレベルとコードが実行されている場所に依存します。もしそれが公開されていれば、どのオブジェクトでもその構文を使ってアクセスできます。プライベートでも、Sectionクラスの別のインスタンスでそのコードを呼び出している場合は、その構文を使用してアクセスすることもできます。 –

答えて

3

オブジェクトへのすべての参照をオブジェクト自体から見つけることはできません。代わりに、それぞれの子に「親」オブジェクトを記録することができます。

生のコレクションを公開する代わりに、独自のクラスを用意することもできます。

class ChildSection { 
    private final Section parent; 
    private final List<Section> sections = new ArraysList<Section>(); 

    public void add(Section section) { 
     sections.add(section); 
     section.setParent(parent); 
    } 
} 
+0

ああ、ありがとうございました。私は自分のコードでそれを実装しようとします。 –

1

いいえ、ArrayListで上向きには追跡できません。各Sectionオブジェクトに親参照を追加する必要があります。