根据列表构造一棵树

List

allMenus = menuDao.findBy(“status”, Status.AVAILABLE.getKey(), “priority”, false);
List rootMenu = new ArrayList ();
if (CollectionUtils.isNotEmpty(allMenus)) {
Map menuMap = new HashMap();
for (Menu menu : allMenus) {
if (menu.getParentId() == null) {
rootMenu.add(menu);
}
menuMap.put(menu.getId(), menu);
}
for (Menu menu : allMenus) {
if ((menu.getParentId() != null) && menuMap.containsKey(menu.getParentId())) {
menuMap.get(menu.getParentId()).addSubMenus(menu);
}
}
}
return rootMenu;

你可能感兴趣的:(Java,其他)