以递归方式更新ArrayList中的值

时间:2015-12-24 09:08:30

标签: java arraylist

我有一个简单的类Person:

private String name;
private String surname;
List<Person> subPersons;

//getters & setters

如何以递归方式更新List中的值?例如,我在列表中有大小= 3的List(1)我有另一个大小为2的列表。我需要在每个子列表的Person类中更新值的递归方法。

P.S。对不起我的英文:)

2 个答案:

答案 0 :(得分:1)

使用此功能可以更新任何深度的儿童:

public void update( Person person )  {
     // Do whatever you want on that particular person
     ...

    // Update sub persons (assume subPersons maay not be null, only empty)
    for( Person subPerson: person.subPersons ) {
        update( subPerson );
    }
}

答案 1 :(得分:0)

public void recursiveUpdate(Person parent) {

    // Modify name and surname
    // parent.setName(...); parent.setSurname(...);

    List<Person> children = parent.getSubPersons();

    if ((children == null) || children.isEmpty()) {
        return;
    } else {
        for (Person child : children) {
            recursiveUpdate(child);
        }
    }

}