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

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

2012-03-29 14:33 471 查看
代码如下,可根据需求衍生出各种格式的输出和使用


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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: