addChild добавляет объект в HashSet, нахождение объекта в коллекции говорит о том, что он является ребенком объекта, вызавшевого метод:
a.addChild (b);
b.addChild (c);
findChild рекурсивно ищет ребенка по полю data:
Собственно, сам вопрос. После 1 иттерации поле метода data совпадает полем data искомого объекта. Почему не отрабатывает return и выполнение идет дальше?
public TreeNode findChild (Object data) {
Iterator<TreeNode> iterator = getChildrenIterator ();
TreeNode node;
while (iterator.hasNext ()) {
node = iterator.next ();
if (node.getData ()==data) {
return node;
}
node.findChild (data);
}
return null;
}
}
Проверяйте результат вызовов node.findChild:
TreeNode result = node.findChild(data);
if (result != null)
return result;
Сборка персонального компьютера от Artline: умный выбор для современных пользователей