我正在尝试弄清楚如何为我正在尝试制作的Java shell制作类似于文件夹文件结构的东西。我希望它类似于linux文件夹结构(有一个根,所有根都是从根开始的)。
对于初学者,我想知道我是否应该使用TreeMap (以便保持某种类型的顺序),或者是否有更好的东西。我知道Java的API很庞大,并且有许多不同的数据结构,但我不确定哪种结构是合适的。
另一个问题是在“目录”之间导航。我的基本概念是使用变量作为一个“地标”,它会根据我移动到的位置或从哪里移动而改变。
树中的文件夹将是由根( server.class)创建的“服务器”对象( main.class),而根又具有由服务器对象中的方法创建的“应用程序”对象(application.class)。
我的想法是否站得住脚,或者这是否没有希望工作?
发布于 2013-01-03 20:33:18
如果你使用的是java7,你可以看看shrinkwrap或者实现你自己的FileSystemProvider。
在pre - java7中,模拟“内存文件系统”是相当复杂的。你可以看看commons-vfs,但是如果我没记错的话,它只处理URL而不处理文件。
发布于 2013-01-03 20:28:58
这听起来一点也不像Map (键/值存储)。
我更希望有一个文件/目录对象的树形结构。您的当前位置被简单地记录为Directory对象的一个实例。我怀疑,为了提高效率,您可能需要一个双链接结构。
此SO question/answer可能会提供更多信息和建议。
发布于 2013-01-03 20:29:04
使用真正的树型结构,而不是TreeMap。它可以在内部为每个节点(文件夹)的内容使用TreeMaps,但整个内容不应该是一个TreeMap。
https://stackoverflow.com/questions/14138897
复制相似问题