Java程序组装树形List

一、实体对象

package com.soft.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 实体: 模块菜单表
 */
public class Module  implements Serializable {
   private String menuUrl;//菜单地址
   
   private String moduleName;//名称
   
   private String moduleDescribe;//描述
   
   private String createTime;//创建时间
   
   private String createUser;//创建人
   
   private String moduleNo;//编号
   
   private String moduleType;//类型
   
   private String menuOrder;//菜单序号
   
   private String updateTime;//修改时间
   
   private String menuIcon;//菜单图标
   
   private String parentId;//父级ID
   
   private String moduleId;//模块功能ID
   
   private String updateUser;//修改人

   private List<Module> childrens = new ArrayList<Module>();//子级菜单

   public void setEntity(Module module){
      setMenuIcon(module.getMenuIcon());
      setMenuUrl(module.getMenuUrl());
      setModuleId(module.getModuleId());
      setModuleName(module.getModuleName());
      setModuleNo(module.getModuleNo());
      setModuleType(module.getModuleType());
      setParentId(module.getParentId());
   }

   public void addChildren(Module module){
      this.childrens.add(module);
   }
   public List<Module> getChildrens() {
      return childrens;
   }
   public void setChildrens(List<Module> childrens) {
      this.childrens = childrens;
   }
   public String getMenuUrl(){
      return this.menuUrl;
   }
   public void setMenuUrl(String menuUrl){
      this.menuUrl = menuUrl;
   }
   public String getModuleName(){
      return this.moduleName;
   }   
   public void setModuleName(String moduleName){
      this.moduleName = moduleName;
   }
   public String getModuleDescribe(){
      return this.moduleDescribe;
   }   
   public void setModuleDescribe(String moduleDescribe){
      this.moduleDescribe = moduleDescribe;
   }
   public String getCreateTime(){
      return this.createTime;
   }   
   public void setCreateTime(String createTime){
      this.createTime = createTime;
   }
   public String getCreateUser(){
      return this.createUser;
   }   
   public void setCreateUser(String createUser){
      this.createUser = createUser;
   }
   public String getModuleNo(){
      return this.moduleNo;
   }   
   public void setModuleNo(String moduleNo){
      this.moduleNo = moduleNo;
   }
   public String getModuleType(){
      return this.moduleType;
   }   
   public void setModuleType(String moduleType){
      this.moduleType = moduleType;
   }
   public String getMenuOrder(){
      return this.menuOrder;
   }   
   public void setMenuOrder(String menuOrder){
      this.menuOrder = menuOrder;
   }
   public String getUpdateTime(){
      return this.updateTime;
   }   
   public void setUpdateTime(String updateTime){
      this.updateTime = updateTime;
   }
   public String getMenuIcon(){
      return this.menuIcon;
   }   
   public void setMenuIcon(String menuIcon){
      this.menuIcon = menuIcon;
   }
   public String getParentId(){
      return this.parentId;
   }   
   public void setParentId(String parentId){
      this.parentId = parentId;
   }
   public String getModuleId(){
      return this.moduleId;
   }   
   public void setModuleId(String moduleId){
      this.moduleId = moduleId;
   }
   public String getUpdateUser(){
      return this.updateUser;
   }   
   public void setUpdateUser(String updateUser){
      this.updateUser = updateUser;
   }
   
   public String toString(){
      return super.toString();
   }
}

二、组装代码

   /**
    * 组装树
    * @param moduleList
    * @return
    */
   private List<Module> toTreeList(List<Module> moduleList) {
      Map<Object,Module> maps = new HashMap<>();
      List<Module> list = new ArrayList<>();
      for (Module module : moduleList) {
         addTreeNode(module,maps,list);
      }
      return list;
   }
  private void addTreeNode(Module module, Map<Object, Module> maps,
                      List<Module> list) {
      if(maps.containsKey(module.getModuleId())){
         maps.get(module.getModuleId()).setEntity(module);
      }else{
         maps.put(module.getModuleId(), module);
      }
      if(module.getParentId() == null){
         list.add(maps.get(module.getModuleId()));
      }else{
         if(maps.containsKey(module.getParentId())){
            maps.get(module.getParentId()).addChildren(module);
         }else{
            Module parent = new Module();
            parent.addChildren(module);
            maps.put(module.getParentId(),parent);
         }
      }
   }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值