在Java中搜索嵌套对象的逻辑是什么?

Sam*_*Sam 1 java search data-structures

我有一个Person的对象结构,如下所示,我想根据其名字搜索一个Person。

public Person{

   String name;

   List<Person> person;

}
Run Code Online (Sandbox Code Playgroud)

我们该如何实现搜索方法?

将存在一个根对象,即Person,它与其他人有链接,依此类推。

人的名字是唯一的。

搜索签名可以是

public Person findPerson(Person root, String name){

}
Run Code Online (Sandbox Code Playgroud)

我可以将其视为thisthis

有人可以为此建议其他解决方案吗?

Mar*_*aux 5

您将需要递归。遍历列表中的所有人员,并在该人员中搜索相同的目标。找到目标后,请返回并停止所有搜索。

这是一些伪代码:

Person search(Person, Name)
    if (Person.Name == Name) return Person;
    for each subPerson in Person.person:
        Person found = subPerson.search(Person, Name);
        if (found != null) return found;
    return null;
Run Code Online (Sandbox Code Playgroud)