首页 > 编程知识 正文

美团笔试多长时间,美团笔试完多久面试

时间:2023-05-05 04:41:25 阅读:195926 作者:1458

 目标是根据数据库的菜单实现无限级别的菜单问题

/** * 数据库基础菜单 */public class Menu { private long id; private long parentId; private String name; public Menu(long id, long parentId, String name) { this.id = id; this.parentId = parentId; this.name = name; } public long getId() { return id; } public void setId(long id) { this.id = id; } public long getParentId() { return parentId; } public void setParentId(long parentId) { this.parentId = parentId; } public String getName() { return name; } public void setName(String name) { this.name = name; }} /** * 展示观看页面的菜单 */public class MenuBo { private long id; private String name; private List<MenuBo> menuBoList; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<MenuBo> getMenuBoList() { return menuBoList; } public void setMenuBoList(List<MenuBo> menuBoList) { this.menuBoList = menuBoList; }} import com.alibaba.fastjson.JSONObject;import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) { List<Menu> list = new ArrayList<>(); Menu b = new Menu(1, 0, "主页"); Menu c = new Menu(2, 1, "分类1"); Menu d = new Menu(3, 1, "分类2"); Menu e = new Menu(4, 2, "分类1--子1"); Menu f = new Menu(5, 2, "分类1--子2"); Menu g = new Menu(6, 3, "分类2--子1"); Menu q = new Menu(7, 3, "分类2--子2"); Menu ff = new Menu(8, 7, "分类2--子2--1"); Menu ff1 = new Menu(9, 8, "分类2--子2--1--1"); list.add(b); list.add(c); list.add(d); list.add(e); list.add(f); list.add(g); list.add(q); list.add(ff); list.add(ff1); List<MenuBo> menuBoList = toMenu(list); jydbq = JSONObject.toJSON(menuBoList); System.out.println(menu); } private static List<MenuBo> toMenu(List<Menu> list) { List<MenuBo> newMenuList = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { if (list.get(i).getParentId() == 0) { MenuBo menuBo = new MenuBo(); menuBo.setId(list.get(i).getId()); menuBo.setName(list.get(i).getName()); newMenuList.add(menuBo); } } for (MenuBo node : newMenuList) { List<MenuBo> child = getChild(node.getId(), list); node.setMenuBoList(child); } return newMenuList; } /** * @return * @Author * @Description //TODO 获取根节点的子节点 * @Param */ public static List<MenuBo> getChild(long id, List<Menu> allNode) { //存放子菜单的集合 List<MenuBo> listChild = new ArrayList<>(); for (Menu node : allNode) { if (node.getParentId() == id) { MenuBo menuBo = new MenuBo(); menuBo.setId(node.getId()); menuBo.setName(node.getName()); listChild.add(menuBo); } } //递归: for (MenuBo node : listChild) { node.setMenuBoList(getChild(node.getId(), allNode)); } if (listChild.size() == 0) { return null; } return listChild; }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。