您的位置:首页 > 编程语言 > Java开发

用JAVA实现文本形式的树状结构显示

2008-08-19 16:56 543 查看
­
package test;




import java.util.ArrayList;


import java.util.List;




public class Folder {


public Folder(String title) {


this.title = title;


}




private String title;




private List<Folder> children = new ArrayList<Folder>();




public void addChild(Folder f) {


children.add(f);


}


public List<Folder> getChildren() {


return children;


}




public void setChildren(List<Folder> children) {


this.children = children;


}




public String getTitle() {


return title;


}




public void setTitle(String title) {


this.title = title;


}




public String toString(String lftStr, String append) {


StringBuilder b = new StringBuilder();


b.append(append + title);


b.append("/n");


if (children.size() > 0) {


for (int i = 0; i < children.size() - 1; i++) {


b.append(lftStr+children.get(i).toString(lftStr + "│", "├"));


}


b.append(lftStr + children.get(children.size() - 1).toString(


lftStr + " ", "└"));




}


return b.toString();




}




public static void main(String[] args) {


Folder root = new Folder("菜单列表");


Folder f1 = new Folder("开始菜单");


root.addChild(f1);


Folder f1_1 = new Folder("程序");


f1.addChild(f1_1);


Folder f1_1_1 = new Folder("附件");


f1_1.addChild(f1_1_1);


Folder f1_1_1_1 = new Folder("娱乐");


f1_1_1.addChild(f1_1_1_1);


Folder f1_1_1_2 = new Folder("娱乐2");


f1_1_1.addChild(f1_1_1_2);


Folder f1_2 = new Folder("辅助工具");


f1.addChild(f1_2);


Folder f2 = new Folder("My Documents ");


root.addChild(f2);


Folder f3 = new Folder("My Documents2 ");


root.addChild(f3);




System.out.println(root.toString(" ", ""));


}


}
­
­
运行结果如下:
­
菜单列表
├开始菜单
│├程序
││└附件
││ ├娱乐
││ └娱乐2
│└辅助工具
├My Documents
└My Documents2
­
增加了JDK 1.4版及以下的程序版本,取消了泛型

import java.util.ArrayList;


import java.util.List;




public class Folder {


public Folder(String title) {


this.title = title;


}




private String title;




private List children = new ArrayList();




public void addChild(Folder f) {


children.add(f);


}




public List getChildren() {


return children;


}




public void setChildren(List children) {


this.children = children;


}




public String getTitle() {


return title;


}




public void setTitle(String title) {


this.title = title;


}




public String toString(String lftStr, String append) {


StringBuilder b = new StringBuilder();


b.append(append + title);


b.append(" ");


if (children.size() > 0) {


for (int i = 0; i < children.size() - 1; i++) {


b.append(lftStr + ((Folder) children.get(i)).toString(lftStr + "│", "├"));


}


b.append(lftStr + ((Folder) children.get(children.size() - 1)).toString(lftStr + " ", "└"));


}


return b.toString();


}




public static void main(String[] args) {


Folder root = new Folder("菜单列表");


Folder f1 = new Folder("开始菜单");


root.addChild(f1);


Folder f1_1 = new Folder("程序");


f1.addChild(f1_1);


Folder f1_1_1 = new Folder("附件");


f1_1.addChild(f1_1_1);


Folder f1_1_1_1 = new Folder("娱乐");


f1_1_1.addChild(f1_1_1_1);


Folder f1_1_1_2 = new Folder("娱乐2");


f1_1_1.addChild(f1_1_1_2);


Folder f1_2 = new Folder("辅助工具");


f1.addChild(f1_2);


Folder f2 = new Folder("My Documents ");


root.addChild(f2);


Folder f3 = new Folder("My Documents2 ");


root.addChild(f3);


System.out.println(root.toString(" ", ""));


}


}
­
­
­
­
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐