zoukankan      html  css  js  c++  java
  • 字典表树状结构最简单的方法

    // 1. 获取所有数据List,找到顶级ID
    voList.stream().filter( vo ->
                    vo.getParentId() == null
            ).map( (menu) -> {
                menu.setHiddenDictVos( getChildrens( menu, voList ) );
                return menu;
            } ).collect( Collectors.toList() );
    
    //2. 把子类塞进去
    private List<HiddenDictVo> getChildrens(HiddenDictVo menu, List<HiddenDictVo> voList) {
        return voList.stream().filter( dictVO -> {
            return menu.getDictId().equals(dictVO.getParentId() );
        } ).map( dictVO -> {
            //1、找到子类
            dictVO.setHiddenDictVos( getChildrens( dictVO, voList ) );
            return dictVO;
        } ).collect( Collectors.toList() );
    }
    
    // 实体类
    public class HiddenDictVo {
        //xxx其他属性略
        private List<HiddenDictVo> hiddenDictVos;
    }

    // 第二种

    public class generateTree{
    
    
              List<SysDeptTreeVO> sysDeptTreeVOS = new ArrayList<>();
    
    
                for (SysDept root : deptList) {
    if (root.getDeptLevel() != null && root.getDeptLevel() == 1) {
    SysDeptTreeVO sysDeptTreeVO = getTree(root, deptList);
    sysDeptTreeVOS.add(sysDeptTreeVO);
    }
    }

    
    
    
    
    
    
    public static SysDeptTreeVO getTree(SysDept sysDept, List<SysDept> deptList) {
    SysDeptTreeVO vo = new SysDeptTreeVO();
    BeanUtils.copyProperties(sysDept, vo);
    List<SysDeptTreeVO> child = getChild(sysDept, deptList);
    vo.setChildrenList(null);
    if (child.size() > 0) {
    vo.setChildrenList(child);
    }
    return vo;
    }

    public static List<SysDeptTreeVO> getChild(SysDept sysDept, List<SysDept> deptList) {
    List<SysDeptTreeVO> childList = new ArrayList<>();
    for (SysDept root : deptList) {
    if (root.getParentId() != null) {
    if (root.getParentId().equals(sysDept.getId())) {
    SysDeptTreeVO sysDeptTreeVO = getTree(root, deptList);
    sysDeptTreeVO.setParentName(sysDept.getDeptName());
    childList.add(sysDeptTreeVO);
    }
    }
    }
    return childList;
    }
    
    
    }
     
  • 相关阅读:
    设计模式之装饰模式
    SpringAOP 失效解决方案、Spring事务失效
    Jmeter测试出现端口占用情况
    ElasticSearch创建动态索引
    Zuul + Ribbon 脱离Eureka完成负载均衡+重试机制
    TCP的三次握手与四次挥手笔记
    Java中的阻塞队列
    Jmeter5.1——聚合报告参数分析
    SpringCloud"灰度部署"——动态刷新网关配置
    JVM学习笔记——类加载过程
  • 原文地址:https://www.cnblogs.com/padazala/p/15213536.html
Copyright © 2011-2022 走看看