1.多层树形结构数据的查询
(1)参照代码
List<TreeDataBackIndustryVO> treeIndustryVOS = sysIndustryMapper.selectAllIndustry();
//存放最高级行业
ArrayList<TreeDataBackIndustryVO> treeDataBackIndustryVOS= new ArrayList<>();
//存放所有行业,减少for循环次数,方便查找数据
HashMap<Integer, TreeDataBackIndustryVO> hashMap = new HashMap<>();
//把全部数据用id作为key放入map集合中
for (TreeDataBackIndustryVO treeDataBackIndustryVO : treeIndustryVOS) {
hashMap.put(treeDataBackIndustryVO.getIndustryId(),treeDataBackIndustryVO);
}
for (TreeDataBackIndustryVO treeDataBackIndustryVO : treeIndustryVOS){
//把最高级行业放入一个集合
if (treeDataBackIndustryVO.getPreIndustryId()==0){
treeDataBackIndustryVOS.add(treeDataBackIndustryVO);
}else {
//根据行业的父id在map集合中快速查找到父行业
TreeDataBackIndustryVO treeDataBackFatherIndustryVO = hashMap.get(treeDataBackIndustryVO.getPreIndustryId());
//如果父行业不为空,就把子行业添加到父行业内的子行业集合中
if (treeDataBackFatherIndustryVO!=null){
treeDataBackFatherIndustryVO.getTreeDataBackIndustryVOS().add(treeDataBackIndustryVO);
}
}
}
return HttpResponse.success(treeDataBackIndustryVOS);