我们有一个看起来像“递归”数据结构的对象。Java:递归迭代映射
假设我们有一个Person对象,其结构是这样的
public class Person {
private String id;
private Map<String,Person> persons;
public Person(String id, Map<String,Person> persons){
this.id = id;
this.persons = persons;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Map<String, Person> getPersons() {
return persons;
}
public void setPersons(Map<String, Person> persons) {
this.persons = persons;
}
@Override
public String toString() {
return "Person [id=" + id + ", persons=" + persons + "]";
}
}
该对象的一个实例表示为:ImmutableMap
是从谷歌:(样本数据)
Person p1 = new Person("Jim", ImmutableMap.of("A001",new Person("Mike",ImmutableMap.of("D001",new Person("Jack",ImmutableMap.of("E001",new Person("Kim",null))))),
"Z001",new Person("Adam",ImmutableMap.of("Y001",new Person("Eve",ImmutableMap.of("X001",new Person("Dave",null)))))));
注1番石榴集合
注2:我们假设Person对象中Map的'key'是人的名字。
给定一个人的名字,什么是最有效的方式去迭代和获得id。?
例如,如果输入的是“夏娃”,输出应该如你已经在使用番石榴NE“Y001”
你允许有周期,人们在他们的'persons'地图对方,直接或间接地? – templatetypedef
没有周期........ – user2434
那么你到目前为止尝试过什么? – MartinS