java菜单树,java菜单树并记录菜单深度

发布时间:2023-01-09

本文目录一览:

  1. java递归遍历某个菜单下的菜单树
  2. 树在java中的应用有哪些
  3. java树形菜单编辑保存
  4. Java递归如何正确输出树形菜单

java递归遍历某个菜单下的菜单树

不太清楚你这个Menu是哪来的类,不过如果上文你的程序能执行的话,说明menu.getChilds()是个集合,应该带有size()的函数。你可以取出menu.getChilds()的大小,再从头到尾遍历它。

int count=menu.getChilds().size();
for(int i=0; i<count; i++) {
    showMenu( ((Menu)menu.getChilds().get(i)) , 0 );
    //我估计这些children是个list,可以顺序遍历;但也有
    //部分可能是set,那样就得用iterator了。
}

树在java中的应用有哪些

首先:树与线性表、栈、队列等线性结构不同,树是一种非线性结构。一棵树只有一个根节点,如果一棵树有了多个根节点,那它已经不再是一棵树了,而是多棵树的集合,也被称为森林。 其次:java中树的应用主要有:菜单树,还有权限树,商品分类列表也是树结构。

java树形菜单编辑保存

在图形界面中添加文本框架实现文本编辑,通过鼠标菜单栏添加事件监听实现保存。 在开发中我们经常会遇到左边是树形菜单,右边是一个显示列表,单击左边的树形菜单项时,右边会显示该菜单里面相对应的内容。在实战开发中经常有需要处理树形菜单、树形目录等等等业务需求。 而对于这种产品,在设计数据库时也建议使用idparentId的结构来做。

Java递归如何正确输出树形菜单

首先我们要建立树节点的类:

package com.tree;
public class Node {
    private Integer id;
    private Integer parentId;
    private String name;
    private String link;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getParentId() {
        return parentId;
    }
    public void setParentId(Integer parentId) {
        this.parentId = parentId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLink() {
        return link;
    }
    public void setLink(String link) {
        this.link = link;
    }
}

输出树形菜单类:

package com.tree;
import java.util.ArrayList;
import java.util.List;
public class Tree {
    private StringBuffer html = new StringBuffer();
    private List<Node> nodes;
    public Tree(List<Node> nodes){
        this.nodes = nodes;
    }
    public String buildTree(){
        html.append("<ul");
        for (Node node : nodes) {
            Integer id = node.getId();
            if (node.getParentId() == null) {
                html.append("\r\n<li id='" + id + "'>" + node.getName() + "</li>");
                build(node);
            }
        }
        html.append("\r\n</ul>");
        return html.toString();
    }
    private void build(Node node){
        List<Node> children = getChildren(node);
        if (!children.isEmpty()) {
            html.append("\r\n<ul");
            for (Node child : children) {
                Integer id = child.getId();
                html.append("\r\n<li id='" + id + "'>" + child.getName() + "</li>");
                build(child);
            }
            html.append("\r\n</ul");
        }
    }
    private List<Node> getChildren(Node node){
        List<Node> children = new ArrayList<>();
        Integer id = node.getId();
        for (Node child : nodes) {
            if (id.equals(child.getParentId())) {
                children.add(child);
            }
        }
        return children;
    }
}