+-

我有一个包含自我引用对象ArrayList的对象.该ArrayList中的每个Object包含相同的结构,最多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 / etc之类的路径.
点击查看更多相关文章
转载注明原文:java-在对象数组中搜索字符串 - 乐贴网