简单的一个小例子,话不多说,直接上源码。方便大家以后用的着
节点类
package com.test; import java.util.ArrayList; import java.util.List; public class Main { public Main() { // TODO Auto-generated constructor stub ClassNode rootNode = new ClassNode(true, "", "", 1, 1, "IT数码"); rootNode.setNodes(generaterNodes(rootNode, 2, "手机", "电脑", "平板")); rootNode.getNodes().get(0) .setNodes(generaterNodes(rootNode.getNodes().get(0), 3, "Android", "Apple", "WinPhone")); rootNode.getNodes().get(1).setNodes(generaterNodes(rootNode.getNodes().get(1), 3, "外星人", "苹果", "MicroSurface")); rootNode.getNodes().get(2).setNodes(generaterNodes(rootNode.getNodes().get(2), 3, "华为", "小米", "iPad")); List<ClassNode> nodes = new ArrayList<>(); nodes.add(rootNode); showClassNode(rootNode, nodes); } private List<ClassNode> generaterNodes(ClassNode parent, int level, String... names) { List<ClassNode> nodes = new ArrayList<>(); for (int i = 0; i < names.length; i++) { nodes.add(new ClassNode(parent, false, "", "", level, i + 1, names[i])); } return nodes; } public void showClassNode(ClassNode node, List<ClassNode> nodes) { if (!node.isRoot()) printPlus(node.getLevel() - 1); System.out.println(node.toString()); if (node.hasNodes()) { List<ClassNode> childNode = node.getNodes(); for (ClassNode classNode : childNode) { showClassNode(classNode, childNode); } } } private void printPlus(int spaceNum) { for (int i = 0; i < spaceNum; i++) System.out.print(" "); System.out.print("├─"); } public static void main(String[] args) { // TODO Auto-generated method stub new Main(); } }
节点类
package com.test; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ClassNode { /** * 如IT数码,为根结点,那么level为1,下面有手机,电脑,level分别为2,2,position分别为1,2 */ private boolean root;// 是否根结点 private String id;// 用户编号 private String sid;// 系统编号 private int level;// 当前所在级别 private int position;// 当前级别位置 private String name;// 当前级别名称 private List<ClassNode> nodes; private ClassNode parent;// 父亲节点 public ClassNode(boolean root, String id, String sid, int level, int position, String name) { this(null, root, id, sid, level, position, name, null); } public ClassNode(boolean root, String id, String sid, int level, int position, String name, List<ClassNode> nodes) { this(null, root, id, sid, level, position, name, nodes); } public ClassNode(ClassNode parent, boolean root, String id, String sid, int level, int position, String name) { this(parent, root, id, sid, level, position, name, null); } public ClassNode(ClassNode parent, boolean root, String id, String sid, int level, int position, String name, List<ClassNode> nodes) { super(); this.parent = parent; this.root = root; this.id = id; this.sid = sid; this.level = level; this.position = position; this.name = name; this.nodes = nodes; } public boolean isRoot() { return root; } public void setRoot(boolean root) { this.root = root; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public int getLevel() { return level; } public void setLevel(int level) { this.level = level; } public int getPosition() { return position; } public void setPosition(int position) { this.position = position; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<ClassNode> getNodes() { return nodes; } public void setNodes(List<ClassNode> nodes) { this.nodes = nodes; } public boolean hasNodes() { return nodes != null && nodes.size() > 0; } public ClassNode getParent() { return parent; } public void setParent(ClassNode parent) { this.parent = parent; } @Override public String toString() { // TODO Auto-generated method stub StringBuffer buffer = new StringBuffer(); List<String> strings = new ArrayList<>(); buffer.append(getName()); buffer.append("["); ClassNode parent = this.parent; while (parent != null) { StringBuffer sb = new StringBuffer(); sb.append(parent.getLevel()); sb.append("-"); sb.append(parent.getPosition()); sb.append("-"); strings.add(sb.toString()); parent = parent.getParent(); } Collections.reverse(strings);//反转 for (String string : strings) { buffer.append(string); } buffer.append(getLevel()); buffer.append("-"); buffer.append(getPosition()); buffer.append("]"); return buffer.toString(); } }
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2300
- 用户1336
- 访客10859999
每日一句
True success inspires others to act.
真正的成功是激励他人行动。
真正的成功是激励他人行动。
语法错误: 意外的令牌“标识符”
全面理解Gradle - 定义Task
Motrix全能下载工具 (支持 BT / 磁力链 / 百度网盘)
谷歌Pixel正在开始起飞?
获取ElementUI Table排序后的数据
Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is
亲测!虚拟机VirtualBox安装MAC OS 10.12图文教程
华为手机app闪退重启界面清空log日志问题
android ndk开发之asm/page.h: not found
手机屏幕碎了怎么备份操作?
免ROOT实现模拟点击任意位置
新手必看修改DSDT教程
thinkpad t470p装黑苹果系统10.13.2
新会员