The*_*rXP 7 java tree data-structures
我有一个像这样的字符串路径列表:
{"/ foo","/ bar","/ foo/admin","/ foo/cust","/ bar/erp","/ bar/erp/call","/ foo/cust/profile"}
如何创建一个ordred字符串树路径?或者我在哪里可以找到一种可以解决我的问题的图书馆?
另一部分,是我想知道如何循环获取我需要的信息的结构(例如,一个树节点将包含一个字符串路径,但也可以包含一个带有路径属性的对象的集合)所以你可以理解需要一个复杂的数据结构
树可以这样表示:
- /
-- /foo
-- -- /foo/admin
-- -- /foo/cust
-- -- -- /foo/cust/profile
-- /bar
-- -- /bar/erp
-- -- -- /bar/erp/call
Run Code Online (Sandbox Code Playgroud)
谢谢
你需要什么:
如何一起使用这些:在1.中遍历主数组,将每个字符串传递给2.中的一个标记器.使用新的标记化字符串通过树使用第一个标记作为树的第一个级别,第二个作为第二个标记,等等.当您遇到树中不存在的标记时,添加它们.
在构建树之后,您只需在其中遍历一个分支,一次回显其内容.
干杯,快乐的编码!
尝试这个:
import java.util.*;
public class Main {
public static void main(String[] args){
List<String> data = Arrays.asList("/foo", "/bar", "/foo/admin", "/foo/cust", "/bar/erp", "/bar/erp/call", "/foo/cust/profile");
// order by path
Collections.sort(data, new Comparator<String>(){
@Override public int compare(String o1, String o2) {
return o1.compareTo(o2);
}
});
for (String s : data){
int length = s.split("/").length - 1; // -1 means.. without empty string
for (int i=0; i< length; i++){
System.out.print("-- ");
}
System.out.println(s);
}
}
}
Run Code Online (Sandbox Code Playgroud)
// 结果是
-- /bar
-- -- /bar/erp
-- -- -- /bar/erp/call
-- /foo
-- -- /foo/admin
-- -- /foo/cust
-- -- -- /foo/cust/profile
Run Code Online (Sandbox Code Playgroud)