【发布时间】:2020-07-09 06:23:22
【问题描述】:
我有这个 Person 类,它有一个 Person (s) 列表。如何遍历人员并检查其中的每个对象是否有一个 Person(s) 列表,以及其中的每个对象是否有一个列表等等?就嵌套的方式而言,我能想到的一切都非常有限。我可以编写一个递归循环,但这让我深入到第一级,但不确定如何通过递归获得 x 级深度。我敢肯定,过去有人遇到过这个问题,它不应该那么困难,但我就是不能完全理解它。欢迎任何和所有想法!
public class Person {
// other fields removed for simplicity
private long id;
private List<Person> persons;
public List<Person> getPersons() {
return debates;
}
}
// essentially I am looking for a way to make this unlimited level nested looping
private void loopPersons() {
Person person = new Person();
if(person.getPersons() != null && !person.getPersons().isEmpty()) {
for(Person person1 : person.getPersons()) {
if(person1.getPersons() != null && !person1.getPersons().isEmpty()) {
System.out.println(person1.getId());
for(Person person2 : person1.getPersons()) {
if(person2.getPersons() != null && !person2.getPersons().isEmpty()) {
System.out.println(person2.getId());
}
}
}
}
}
}
更新: Brian 在另一篇文章(向下滚动)中的回答基本上就是它的作用。 iterate through recursive objects
【问题讨论】:
-
如果您可以将 loopPerson 作为 Person 的成员,您可以执行循环 x 级别。想想吧。
-
@AnkurJyotiPhukan 我没有关注;能详细点吗?
标签: java loops recursion arraylist