1. 程式人生 > >java 轉換樹形結構程式碼

java 轉換樹形結構程式碼

    public Map<String,List<MenuOperate>> getMenuAndOperateAll(Map<String, Object> params) {         // TODO Auto-generated method stub         List<Map<String, Object>> getMenuAndOperateAllList=menuOperateMapper.getMenuAndOperateAll(params);         Integer id = Integer.parseInt(String.valueOf(params.get("cid")));         Company company=companyMapper.selectByPrimaryKey(id);         List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();         if (company.getTemp3().equals("1")) {             return getTreeDataForList(getMenuAndOperateAllList);         }else{             for (Map<String, Object> map : getMenuAndOperateAllList) {                 if (!map.get("menuCode").equals("Red")) {                     list.add(map);                 }             }         }             return getTreeDataForList(list);     }    

    /**      * 根據傳入的list資料, 轉換成樹結構      * @param olist 後臺獲取的許可權資料集合      * @return 返回map<String,List<menuOperate>>       *         樣例:{"紅包管理":{"釋出紅包活動","暫停紅包活動",...},"":{},...}      */     public Map<String,List<MenuOperate>> getTreeDataForList(List<Map<String, Object>> olist){         //校驗引數         if(olist==null || olist.size()<1){             return new HashMap<String,List<MenuOperate>>();                     }         //準備資料         Map<String,List<MenuOperate>> resultMap = new HashMap<String,List<MenuOperate>>();             //預設不建立例項         List<MenuOperate> resultList =  null;         //處理olist資料         for(Map<String, Object> map : olist){             //獲取父類名稱 作為結果集的主鍵             String key = String.valueOf(map.get("fatherName"));             //預設不建立例項             MenuOperate mo = null;             //校驗map中是否存在這個主鍵, 如果存在取出list, 在list中放入新的MenuOperate物件。             if(resultMap.containsKey(key)){                 //取出list資料                 resultList = resultMap.get(key);                 mo = new  MenuOperate();                 mo.setId(Integer.parseInt(String.valueOf(map.get("id"))));                 mo.setCode(String.valueOf(map.get("code")));                 mo.setHasPemission(String.valueOf(map.get("hasPemission")));                 mo.setMenuCode(String.valueOf(map.get("menuCode")));                 mo.setName(String.valueOf(map.get("name")));                 mo.setPid(Integer.parseInt(String.valueOf(map.get("pid"))));                 resultList.add(mo);                 resultMap.put(key, resultList);                              }else{                 resultList = new ArrayList<MenuOperate>();                 mo = new  MenuOperate();                 mo.setId(Integer.parseInt(String.valueOf(map.get("id"))));                 mo.setCode(String.valueOf(map.get("code")));                 mo.setHasPemission(String.valueOf(map.get("hasPemission")));                 mo.setMenuCode(String.valueOf(map.get("menuCode")));                 mo.setName(String.valueOf(map.get("name")));                 mo.setPid(Integer.parseInt(String.valueOf(map.get("pid"))));                 resultList.add(mo);                 resultMap.put(key, resultList);             }         }         return resultMap;     }