工作遇到要查询一个文件夹下所有有文件的id,之前的代码是递归获取目录下所有文件的id,效率非常慢,时间复杂度是On
后来想办法优化,其实非常简单就是有时候想不到
解决办法:循环查询下级目录id,时间复杂度变成O1
核心代码其实就一个判断
//分层查询,先查询需要查询的文件id下所有文件的id(ids),然后再查询pid属于ids的所有id集合
// 以此类推,直到下面没有数据即size==0
//赋予初始值,即需要查询文件id
List<Long> selectIdList = ids;
while (selectIdList.size() != 0){
//查询下级所有文件id
selectIdList = selectIdList(selectIdList);
ids.addAll(selectIdList);
}
return ids;