1.实体类为:
id:主键
name:名字
parent_id:父id
grade:等级
根据list中的实体类数据返回树形结构,代码如下:
public class TSystemTreeUtil {
public static Map<String,Object> mapArray = new LinkedHashMap<String, Object>();
public static List<TSystem> menuCommon;
public static List<Object> menuList(List<TSystem> menu){
List<Object> list = new ArrayList<>();
menuCommon = menu;
for (TSystem x : menu) {
Map<String,Object> mapArr = new LinkedHashMap<String, Object>();
mapArr.put("id", x.getId());
mapArr.put("sys_name",x.getSysName());
mapArr.put("category", x.getCategory());
mapArr.put("project_name", x.getProjectName()==null?null:x.getProjectName());
mapArr.put("standard", x.getStandard()==null?null:x.getStandard());
mapArr.put("contents", x.getContents()==null?null:x.getContents());
mapArr.put("fraction", x.getFraction()==null?null:x.getFraction());
if("1".equals(x.getGrade())){
mapArr.put("remarks",x.getCategory());
}else if("2".equals(x.getGrade())){
mapArr.put("remarks",x.getProjectName());
}else if("3".equals(x.getGrade())){
mapArr.put("remarks",x.getStandard());
}
mapArr.put("child", menuChild(x.getId())); //去子集查找遍历
list.add(mapArr);
}
return list;
}
public static List<?> menuChild(Long id){ //子集查找遍历
List<Object> lists = new ArrayList<Object>();
for(TSystem a:menuCommon){
Map<String,Object> childArray = new LinkedHashMap<String, Object>();
if (null == a.getParentId()){
continue;
}
if(a.getParentId().equals(id)){
childArray.put("id", a.getId());
childArray.put("sys_name",a.getSysName());
childArray.put("category", a.getCategory());
childArray.put("project_name", a.getProjectName()==null ? null :a.getProjectName());
childArray.put("standard", a.getStandard()==null ? null :a.getStandard());
childArray.put("contents", a.getContents()==null?null:a.getContents());
childArray.put("fraction", a.getFraction()==null?null:a.getFraction());
if("1".equals(a.getGrade())){
childArray.put("remarks",a.getCategory());
}else if("2".equals(a.getGrade())){
childArray.put("remarks",a.getProjectName());
}else if("3".equals(a.getGrade())){
childArray.put("remarks",a.getStandard());
}
childArray.put("child", menuChild(a.getId()));
lists.add(childArray);
}else {
continue;
}
}
return lists;
}
}
|
本文介绍了一种将基于实体类的数据转换为树形结构的方法。通过递归遍历实体类列表,根据实体的父ID和等级属性,构建出带有层级关系的树形结构数据。适用于系统菜单、文件目录等场景。
240

被折叠的 条评论
为什么被折叠?



