@Override public List<MenuNode> treeList() { List<Menu> menuList = menuMapper.selectList(null); List<MenuNode> menuNodeList = menuList.stream().filter(menu -> menu.getParentId().equals(0)) .map(menu -> getMenuNodeObj(menu,menuList)).collect(Collectors.toList()); return menuNodeList; } private MenuNode getMenuNodeObj(Menu menu, List<Menu> menuList) { MenuNode menuNode = new MenuNode(); BeanUtils.copyProperties(menu,menuNode); List<MenuNode> nodeList = menuList.stream().filter(menu1 -> menu1.getParentId().equals(menu.getId())) .map(menu1 -> getMenuNodeObj(menu1, menuList)).collect(Collectors.toList()); menuNode.setChildren(nodeList); return menuNode; }