java中怎么實(shí)現(xiàn)樹形菜單

小億
140
2024-03-13 15:30:54

在Java中實(shí)現(xiàn)樹形菜單可以使用樹形數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)菜單項(xiàng),然后通過(guò)遞歸的方式來(lái)構(gòu)建樹形菜單。

以下是一個(gè)簡(jiǎn)單的示例代碼實(shí)現(xiàn)樹形菜單:

import java.util.ArrayList;
import java.util.List;

class MenuItem {
    private String name;
    private List<MenuItem> children;

    public MenuItem(String name) {
        this.name = name;
        this.children = new ArrayList<>();
    }

    public void addChild(MenuItem child) {
        this.children.add(child);
    }

    public void display(int level) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < level; i++) {
            sb.append("\t");
        }
        System.out.println(sb.toString() + name);
        for (MenuItem child : children) {
            child.display(level + 1);
        }
    }
}

public class Menu {
    public static void main(String[] args) {
        MenuItem root = new MenuItem("Root");
        MenuItem menu1 = new MenuItem("Menu1");
        MenuItem menu2 = new MenuItem("Menu2");
        MenuItem menu3 = new MenuItem("Menu3");
        
        MenuItem submenu1 = new MenuItem("Submenu1");
        MenuItem submenu2 = new MenuItem("Submenu2");
        
        menu1.addChild(submenu1);
        menu1.addChild(submenu2);
        
        root.addChild(menu1);
        root.addChild(menu2);
        root.addChild(menu3);
        
        root.display(0);
    }
}

在上面的示例中,我們定義了一個(gè)MenuItem類來(lái)表示菜單項(xiàng),每個(gè)菜單項(xiàng)可以有多個(gè)子菜單項(xiàng)。然后在Menu類中構(gòu)建了一個(gè)樹形菜單的示例,在main方法中創(chuàng)建了根菜單項(xiàng)和子菜單項(xiàng),并調(diào)用display方法展示樹形菜單。

通過(guò)遞歸的方式,我們可以很容易地構(gòu)建復(fù)雜的樹形菜單結(jié)構(gòu)。

0