public class PTest {
/*
初始化测试数据
*/
Map<String, Dog> map = new HashMap<>();
@BeforeEach
public void initMap() {
map.put("a", new Dog("a1", "a"));
map.put("b", new Dog("b1", "b", "a"));
map.put("c", new Dog("c1", "c", "b"));
map.put("d", new Dog("d1", "d", "c"));
map.put("e", new Dog("e1", "e", "d"));
map.put("f", new Dog("f1", "f", "e"));
map.put("g", new Dog("g1", "g", "e"));
}
@Test
public void testRecursive() {
System.out.println(isParent("a", "g"));
}
/*
递归判断父级设置的父code是否是子级的code
*/
private boolean isParent(String code, String pcode) {
Dog dog = map.get(pcode);
if (Objects.isNull(dog)) {
return false;
}
String pcode1 = dog.getPcode();
return code.equals(pcode1) || isParent(code, pcode1);
}
}
class Dog {
String name;
String code;
String pcode;
public Dog(String name, String code, String pcode) {
this.name = name;
this.code = code;
this.pcode = pcode;
}
public Dog(String name, String code) {
this.name = name;
this.code = code;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", code='" + code + '\'' +
", pcode='" + pcode + '\'' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPcode() {
return pcode;
}
public void setPcode(String pcode) {
this.pcode = pcode;
}
public Dog() {
}
}
递归判断设置父级的父code是否是子级的code
最新推荐文章于 2022-03-03 13:26:24 发布