本文实例为大家分享了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 nodes;
public tree(list nodes){
this.nodes = nodes;
}
public string buildtree(){
html.append("
- ");
for (node node : nodes) {
integer id = node.getid();
if (node.getparentid() == null) {
html.append("\r\n
" + node.getname()+ "");build(node);
}
}
html.append("\r\n
");return html.tostring();
}
private void build(node node){
list children = getchildren(node);
if (!children.isempty()) {
html.append("\r\n
- ");
for (node child : children) {
integer id = child.getid();
html.append("\r\n
" + child.getname()+ "");build(child);
}
html.append("\r\n
");}
}
private list getchildren(node node){
list children = new arraylist();
integer id = node.getid();
for (node child : nodes) {
if (id.equals(child.getparentid())) {
children.add(child);
}
}
return children;
}
}
然后我们来测试一下:
import java.util.arraylist;
import java.util.list;
import cn.com.tree.node;
import cn.com.tree.tree;
public class test {
/**
* @param args
*/
public static void main(string[] args) {
list nodes = new arraylist();
node node1 = new node();
node1.setid(1);
node1.setname("node1");
node1.setparentid(null);
node1.setlink(null);
nodes.add(node1);
node node11 = new node();
node11.setid(11);
node11.setname("node11");
node11.setparentid(1);
node11.setlink(null);
nodes.add(node11);
node node111 = new node();
node111.setid(111);
node111.setname("node111");
node111.setparentid(11);
node111.setlink(null);
nodes.add(node111);
node node12 = new node();
node12.setid(12);
node12.setname("node12");
node12.setparentid(1);
node12.setlink(null);
nodes.add(node12);
node node2 = new node();
node2.setid(2);
node2.setname("node2");
node2.setparentid(null);
node2.setlink(null);
nodes.add(node2);
node node21 = new node();
node21.setid(21);
node21.setname("node21");
node21.setparentid(2);
node21.setlink(null);
nodes.add(node21);
node node3 = new node();
node3.setid(3);
node3.setname("node3");
node3.setparentid(null);
node3.setlink(null);
nodes.add(node3);
tree tree = new tree(nodes);
system.out.println(tree.buildtree());
}
}
输出的结果:
- node1
- node11
- node111
- node12
- node11
- node2
- node21
- node3
浏览器效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。
希望与广大网友互动??
点此进行留言吧!