java 传入list集合 返回树形菜单,for循环遍历
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
这样的一个简单的树形菜单就好了!