代码如下,可根据需求衍生出各种格式的输出和使用。
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 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("\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(" ", ""));
}
}
分享到:
相关推荐
Java实现文本形式的树状结构显示 Java实现文本形式的树状结构显示
树状数组3.java 使用java实现树状数组3.java 使用java实现树状数组3.java 使用java实现树状数组3.java 使用java实现树状数组3.java 使用java实现树状数组3.java 使用java实现树状数组3.java 使用java实现树状数组3....
实现一个BBS可以采取多种方法,该项目采用树状结构来实现,用户可以很容易看出谁回复了谁,自己要回复谁也很方便.对于管理员来说,登陆管理员页面可以进行数据的增、删、查、改,项目中使用了多种分页的写法.
java 代码实现的网络新闻文本自动分类,采用朴素贝叶斯和支持向量机两种方法实现!
java实现的文本聚类使用了kmeans算法
基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java实现的文本编辑器基于java...
Java树状结构 Java树状结构
使用java实现输出文本相似度的一些代码。能够运行,有结果有数据。
用java实现的树状数组,可以作为一个简单的模版来进行应用,如果有不懂得地方,可以上网查找树状数组的原理
使用ztree+java实现AJAX树状结构,代码清晰明了,可直接运行。
Java实现的,将树形层级结构的数据转换成表格,通过打点的方式向表格中插入数据,支持行头表格、列头表格、交叉表格三种形式
Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条
使用java编写的简易文本编辑器。支持打开,保存,新建,另存为,关闭等功能。 支持编辑、剪切、粘贴。 支持查找和替换。
dtree在生成简单树方面比使用Jquery的treeView要方便,代码实现的是用户选择的树状结构图。
一个不错的例子,实现了普通文本转为Excel的技术,值得参考
6、 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求: 1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状...
Java实现文本编辑框上传.txt
本次使用JAVA语言,采用3DES加密算法进行对文本文件的加密,通过二进制和十六进制的转换来实现,产生加密文件,再对加密文件进行解密。 关键词:DES加密算法、加密、解密。摘要 随着现代网络技术的飞速发展,人们...
java调用dll文件实现离线文字转语音,具体代码实现请搜索别的博客