JAVA 用递归实现多级菜单显示

本文介绍如何使用JAVA语言通过递归方法实现多级菜单的打印。通过定义parentId来判断商品级别,当parentId为0时作为顶级菜单,通过treeMenu()方法遍历列表并输出。对于子级菜单,通过childMenu()方法递归查找并输出,直到没有子目录。具体实现细节包括创建菜单类及在主方法中调用递归函数。
摘要由CSDN通过智能技术生成

用JAVA语言用 List 实现多级菜单的打印,使用递归打印如下的输出结果

 |手机
 | |游戏手机
 | |5G手机
 | |拍照手机
 |电脑
 | |笔记本
 | | |华硕笔记本
 | | | |华硕i7
 | | | |华硕i5
 | | |联想笔记本
 | | | |联想小新
 | |一体机
 | |台式机
 |电器
 |衣服

思路分析:

        parentId 是设定的商品的级别,当商品Id 与 parentId 的数值相同时,说明该商品是parentId商品的子级,那么定义一级类目的parentId为0,建立一个treeMenu()方法,遍历建立的 List对象,

输出当parentId == 0时的目录,这时已经成功输出了所需要的一级类目,那么可以再一级类目下面寻找对应的二级,三级类目,这时需要用到另外一个循环childMenu(),在childMenu() 中把一级类目的Id以及建立的List对象作为实参传入,在childMenu() 中还是从头遍历建立的List对象,当parentId 等于我们传入的 一级类目的Id时,就是一级类目的子类目,这时把其对应的商品也输出,同时把得到的二级目录的paratId以及List对象作为实参传入,并继续调用childMene() ,这时可以持续调用,直至没有子目录, 循环调用结束,子目录也成功全部输出。

        接下来看代码。

首先先建立一个要建立一个需要的菜单类

public class ProductType {
    private Integ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java归可以用于动态多级菜单的创建和展示。具体步骤如下: 1. 定义菜单项类,包含名称、子菜单等属性。 2. 定义一个归方法,用于遍历当前菜单项的子菜单,并生成HTML代码来显示菜单。 3. 在归方法中,如果当前菜单项有子菜单,则归调用该方法,直到没有子菜单为止。 4. 在HTML中嵌入归方法生成的代码,即可显示动态多级菜单。 示例代码如下: ```java public class MenuItem { private String name; private List<MenuItem> subMenu; // getter and setter methods } public class Menu { private List<MenuItem> menuItems; // getter and setter methods //归方法,生成HTML代码 public String generateHTML() { StringBuilder sb = new StringBuilder(); sb.append("<ul>"); for (MenuItem item : menuItems) { sb.append("<li>"); sb.append(item.getName()); if (item.getSubMenu() != null && item.getSubMenu().size() > 0) { sb.append(item.getSubMenu().generateHTML()); } sb.append("</li>"); } sb.append("</ul>"); return sb.toString(); } } ``` 调用方式: ```java Menu menu = new Menu(); // 添加菜单项及子菜单 String html = menu.generateHTML(); // 将html嵌入到页面中显示 ``` 以上是简单的实现,具体实现方式会因为实际需求的不同而有所差异。 ### 回答2: 在Java中,我们可以使用归来实现动态多级菜单。 首先,我们可以创建一个Menu类,其中包含菜单的名称和一个子菜单列表。然后,我们可以定义一个方法来打印菜单。在该方法中,我们可以使用归来遍历菜单,并打印每个菜单项以及其子菜单。 为了实现归,我们可以使用一个帮助方法来打印菜单项及其子菜单。此方法会接收一个Menu对象作为参数,并打印菜单的名称,然后遍历该菜单的子菜单列表。如果子菜单列表不为空,我们就可以使用归来调用此方法,以打印子菜单及其子菜单的子菜单。 下面是一个示例代码: ```java class Menu { private String name; private List<Menu> subMenus; public Menu(String name) { this.name = name; this.subMenus = new ArrayList<>(); } public void addSubMenu(Menu menu) { this.subMenus.add(menu); } public void printMenu() { printMenu(this); } private void printMenu(Menu menu) { System.out.println(menu.name); for (Menu subMenu : menu.subMenus) { printMenu(subMenu); } } } public class Main { public static void main(String[] args) { Menu menu1 = new Menu("菜单1"); Menu menu2 = new Menu("菜单2"); Menu menu3 = new Menu("菜单3"); Menu subMenu1 = new Menu("子菜单1"); Menu subMenu2 = new Menu("子菜单2"); menu1.addSubMenu(subMenu1); menu1.addSubMenu(subMenu2); menu1.addSubMenu(menu2); menu2.addSubMenu(menu3); menu1.printMenu(); } } ``` 此示例代码中,我们创建了一个包含多级菜单菜单结构,并使用printMenu方法打印了所有菜单项。运行此代码,将会输出以下内容: ``` 菜单1 子菜单1 子菜单2 菜单2 菜单3 ``` 通过使用归,我们可以灵活地实现动态多级菜单。无论菜单层级有多深,都可以使用相同的方法来打印菜单。 ### 回答3: 在Java实现归动态多级菜单的方法如下: 首先,创建一个菜单项类Menu,该类包含菜单项的名称和子菜单列表。菜单项的子菜单列表也是Menu对象的集合。 在Menu类中,我们定义一个归方法printMenu,用于打印菜单项及其子菜单。在printMenu方法中,我们首先打印当前菜单项的名称,然后遍历子菜单列表,归调用printMenu方法打印子菜单项。 接下来,在主函数中,我们创建多级菜单结构。可以通过手动创建菜单项的方式,也可以通过解析外部数据文件(如JSON或XML)的方式动态创建菜单项。 最后,我们调用菜单根节点的printMenu方法,即可打印出菜单的整个层级结构。 下面是一个简单的示例代码: ```java class Menu { private String name; private List<Menu> subMenus; public Menu(String name) { this.name = name; this.subMenus = new ArrayList<>(); } public void addSubMenu(Menu subMenu) { subMenus.add(subMenu); } public void printMenu() { System.out.println(name); for (Menu subMenu : subMenus) { subMenu.printMenu(); } } } public class Main { public static void main(String[] args) { Menu rootMenu = new Menu("菜单"); Menu menu1 = new Menu("菜单1"); Menu menu2 = new Menu("菜单2"); Menu menu3 = new Menu("菜单3"); rootMenu.addSubMenu(menu1); rootMenu.addSubMenu(menu2); rootMenu.addSubMenu(menu3); Menu menu11 = new Menu("菜单1-1"); Menu menu12 = new Menu("菜单1-2"); menu1.addSubMenu(menu11); menu1.addSubMenu(menu12); menu2.addSubMenu(new Menu("菜单2-1")); rootMenu.printMenu(); } } ``` 以上代码将会输出如下结果: 菜单 菜单1 菜单1-1 菜单1-2 菜单2 菜单2-1 菜单3 这样,我们就实现归动态多级菜单的功能。无论菜单结构有多复杂,只需要归调用printMenu方法,就能打印出整个菜单的层级结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值