将有父子关系的数据转换成树形结构

package Utils;

import Pojo.TaskInfo;
import org.checkerframework.checker.units.qual.A;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

public class TreeUtil {
    public  static Map<String,Object> mapArray = new LinkedHashMap<String, Object>();
    public List<TaskInfo> taskInfos;
    public List<Object> taskList = new ArrayList<>();

    public  List<Object> generateTaskTree(List<TaskInfo> tasks){
        this.taskInfos = tasks;
        for(TaskInfo task:tasks){
            Map<String,Object> mapArr =  new LinkedHashMap<String, Object>();
            if(task.getParentId() == 0){
                setTreeMap(mapArr,task);
                taskList.add(mapArr);
            }
        }
        return taskList;
    }

    public List<?> generateChildTask(Integer id){
        List<Object>  childTaskList =  new ArrayList<Object>();
        for(TaskInfo task:taskInfos){
            Map<String,Object> childMapArr =  new LinkedHashMap<String, Object>();
            if(task.getParentId() == id){
                setTreeMap(childMapArr,task);
                childTaskList.add(childMapArr);
            }
        }
        return childTaskList;
    }

    public void setTreeMap(Map<String,Object> mapArr,TaskInfo task){
        mapArr.put("rootId",task.getRootId());
        mapArr.put("taskId",task.getTaskId());
        mapArr.put("parentId",task.getParentId());
        mapArr.put("taskName",task.getTaskName());
        mapArr.put("childTask",generateChildTask(task.getTaskId()));
    }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容