我有一个带有以下格式的字符串列表:
"levelone.two.three"
"levelone.two.three.node(0)"
"levelone.two.three.node(1)"
"levelone.another"
"aaa.bbb(0).ccc"
"aaa.bbb(1).aaa"
等,
我如何以一种方式来操纵它,然后我可以从中迭代并生成html树?
ex:
- LevelOne
- 两个
- 三个
- 节点0
- 节点1
- 三个
- 另一个
- 两个
- AAA
- BBB 0
- CCC
- BBB 1
- AAA
- BBB 0
标记您的字符串,所以有
[" LevelOne","两个","三"]等
然后从左到右尝试在树上插入以从根节点开始,以维护当前的树节点要插入。如果给出的节点有要插入的节点,请不要执行任何操作。
这应该给您一个公平的想法。
注意:性能和实际实现,您需要自己做。我刚在此处键入代码
String[] testData = new String[] { "levelone.two.three", "levelone.two.three.node(0)",
"levelone.two.three.node(1)", "levelone.another", "aaa.bbb(0).ccc", "aaa.bbb(1).aaa" };
List<String[]> splitData = new ArrayList<String[]>();
for (String data : testData) {
splitData.add(data.split("\."));
}
Map<Integer, Set<String>> treeMap = new LinkedHashMap<Integer, Set<String>>();
for (String[] split : splitData) {
for (int i = 0; i < split.length; i++) {
if (treeMap.get(i) != null) {
treeMap.get(i).add(split[i]);
} else {
Set<String> data = new LinkedHashSet<String>();
data.add(split[i]);
treeMap.put(i, data);
}
}
}
System.out.println(treeMap);
// {0=[levelone, aaa], 1=[two, another, bbb(0), bbb(1)], 2=[three, ccc, aaa], 3=[node(0), node(1)]}
最终地图包含每个级别的数据,其索引为键