java 傳入list集合 返回樹形選單,for迴圈遍歷
阿新 • • 發佈:2018-12-14
public List<SysPermissionVO> getTreeMenu(List<SysPermissionVO> list,SysPermissionVO sysPermissionVO) { List parent = new ArrayList(); for (SysPermissionVO sysPermission : list) { if("0".equals(sysPermission.getpId()) && sysPermissionVO.getSubsystemId().equals(sysPermission.getSubsystemId())){ sysPermission.setChildren(getChildren(sysPermission.getId(),list,sysPermissionVO)); parent.add(sysPermission); } }return parent; }
list:是你獲取的所有的資訊
sysPermissionVO:這裡是傳過來的條件,實體裡面要有一個children屬性用來存放它的子選單
if 判斷裡面的第一個條件0代表頂層,第二個條件是哪一個系統的(沒有可以忽略)
/** * 獲取子列表 * @param pId * @param allList * @param sysPermissionVO * @return */ public List getChildren(String pId,List<SysPermissionVO> allList,SysPermissionVO sysPermissionVO){ List list = new ArrayList<>(); for (SysPermissionVO sysPermission : allList) { if(pId.equals(sysPermission.getpId()) && sysPermissionVO.getSubsystemId().equals(sysPermission.getSubsystemId())){ sysPermission.setChildren(getChildren(sysPermission.getId(),list,sysPermissionVO)); list.add(sysPermission); } } return list; }
pId是頂層選單的id
這樣的一個簡單的樹形選單就好了!