废话不多说,直接上代码吧
/**
* 树形递归展示
* @param wordList 列表所有数据
* @param firstParent 父目录列表,首次入参时为一级父目录
* @return
*/
public static List<Map<String,Object>> treeList(List<SesIndexIndexWord> wordList,List<Map<String,Object>> firstParent){
for (int i = 0; i < firstParent.size(); i++) {
Long firstParentId = Long.parseLong(firstParent.get(i).get("id").toString());
List<Map<String,Object>> childMapList = new ArrayList<>();//跟在父及后子列表
for (int j = 0; j < wordList.size(); j++) {
SesIndexIndexWord word = wordList.get(j);
Long id = word.getId();
String fullPathName = word.getFullPathName();
Long parentId = word.getParentId();
String title = word.getTitle();
String content = word.getContent();
int layNo = word.getLayNo();
//注意:两个long类型不能直接用 == 做判断
if (parentId.longValue()==firstParentId.longValue()){
Map<String,Object> map = new HashMap<>();
map.put("id",id);
map.put("fullPathName",fullPathName);
map.put("parentId",parentId);
map.put("title",title);
map.put("content",content);
map.put("layNo",layNo);
childMapList.add(map);
firstParent.get(i).put("data",childMapList);
}
}
//递归调用
treeList(wordList,childMapList);
}
return firstParent;
}