我有一个包含自引用对象 ArrayList 的对象。 ArrayList 中的每个对象都包含最多 n 度的相同结构。现在我必须在结构中搜索一个字符串,如果找到我必须一直打印到根。这是一个示例
MyClass {
string name;
ArrayList<MyClass> subClasses;
}
什么数据结构最适合做这个。或者我不需要一个来使用它。
亲切的问候
最佳答案
你可以在 MyClass 上有一个如下所示的方法
public List<String> findPathOfName(String nameToFind) {
List<String> result = new ArrayList<String>();
if (nameToFind.equals(name)) {
result.add(name);
} else {
for (MyClass aSubClass: subClasses) {
List<String> subResult = aSubClass.findPathOfName(nameToFind);
if (!subResult.isEmpty()) {
result.add(name);
result.addAll(subResult);
break;
}
}
}
return result;
}
基本上递归地遍历结构并找到路径。返回的列表将包含类似 personA/personB/等的路径。
关于java - 在对象数组中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15985006/