2015-11-14 10 views
-1

Пусть выполнено утра в классеСписок_массивов, что я на самом деле я здесь делаю

`Открытый класс Foo {// некоторые направления ArrayList fooList = новый ArrayList <>();

// Методы Public аннулируются addFoo() {

// некоторый код fooList.add (это);

}

} `

написал addFoo метод вызова() в классе 'Foo'. Итак, теперь мой вопрос заключается в том, что я делаю, когда говорю arraylistObject.add (this) внутри addFoo() ... Что я на самом деле делаю.

+0

Вы добавляете самостоятельную ссылку объекта в список, если вы вызываете его несколько раз, вы будете иметь несколько ссылок на один и тот же объект в своем списке. –

+0

Но, я не вижу никаких причин, почему вы хотите это сделать. Есть ли у вас какая-то специальная возможность для этого. Bcoz не имеет смысла хранить одну и ту же ссылку в вашей коллекции. –

+0

Предположим, я хочу, чтобы пользователь вызывал этот метод addFoo(), чтобы добавить foo в список, а затем как это будет. – Nabstar

ответ

0

Пожалуйста, найдите ниже, чтобы помочь вам.

Структура данных, в которой хранится коллекция той же структуры, создаст дерево неявно.

public class TreeSample { 
    private String value; 
    private List<TreeSample> childNodes; 

    TreeSample(String value) { 
     this.value = value; 
     childNodes = new LinkedList<TreeSample>(); 
    } 

    public void addChild(TreeSample childTree) { 
     this.childNodes.add(childTree); 
    } 

} 

Таким образом, клиентский код может строить структуру данных дерева, добавляя дочерние деревья к родительским узлам.