我有一个这样的字符串路径列表:
{"/foo", "/bar", "/foo/admin", "/foo/cust", "/bar/erp", "/bar/erp/call", "/foo/cust/profile"}
如何创建一个有序的字符串树路径?或者我在哪里可以找到一种可以解决我的问题的库?
另一部分,我想知道如何针对结构进行循环以获取我需要的信息(例如,树节点将包含字符串路径,但也可以包含具有路径属性的对象集合)所以你可以理解为需要一个复杂的数据结构
树可以这样表示:
- /
-- /foo
-- -- /foo/admin
-- -- /foo/cust
-- -- -- /foo/cust/profile
-- /bar
-- -- /bar/erp
-- -- -- /bar/erp/call
谢谢
最佳答案
你需要什么:
- 一个主循环,从头到尾一次遍历字符串数组 1。
- 分词器函数,将/foo/bar/sid 等路径拆分为字符串数组 {'foo','bar','sid'}。
- 树结构(如果您不知道如何在内存中表示树,请查看此 java 操作方法:http://vivin.net/2010/01/30/generic-n-ary-tree-in-java/,但查看与语言无关的指南也是有益的,因为它会给您对其背后理论的一个很好的概述:http://people.cis.ksu.edu/~schmidt/300s05/Lectures/Week7b.html)。树的顶部应该是类似于“root”的东西,因为 foo 和 bar 应该在同一棵树下。
如何一起使用它们: 遍历 1. 中的主数组,将每个字符串一次传递给 2. 中的分词器。使用新的标记化字符串遍历树,使用第一个标记作为树的第一层,第二个标记作为第二层,等等。当您遇到树中不存在的标记时,添加它们。
构建树后,您只需一次遍历它的一个分支以呼应其内容。
干杯,编码愉快!
关于Java:如何创建按字符串路径排序的 Java 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11543776/