1.下面这个博客很详细
https://www.cnblogs.com/JuanF/p/9342172.html
2.使用这个算法的变形,可以解决很多问题,我碰到的问题是,需要记录一个数据库中,某个文件夹下所有的文件以及文件夹名字,数据库中显示这种关系是用一个字段PARENT_DIR_ID,上级目录ID来表示的。
这就是上面的变形,主要是如何理解他们之间的承接关系。
private void getSubDir(MyTreeObject myTreeObject, List<List<MyTreeObject>> listCategory) {
if(myTreeObject.getCategory() == 0) {
int i = 0;
for(i = 0; i < listCategory.size(); i++) {
if(listCategory.get(i).get(0).getName().equals(myTreeObject.getName()))break;
}
for(int j = 1; j < listCategory.get(i).size(); j++) {
getSubDir(listCategory.get(i).get(j),listCategory);
}
if(listSubDir == null || !listSubDir.contains(myTreeObject.getName()))
listSubDir.add(myTreeObject.getName());
}
else {
if(listSubDir == null || !listSubDir.contains(myTreeObject.getName()))
listSubDir.add(myTreeObject.getName());
}
}