Java:如何创建按字符串路径排序的 Java 树

标签 java data-structures tree

我有一个这样的字符串路径列表:

{"/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. 一个主循环,从头到尾一次遍历字符串数组 1。
  2. 分词器函数,将/foo/bar/sid 等路径拆分为字符串数组 {'foo','bar','sid'}。
  3. 树结构(如果您不知道如何在内存中表示树,请查看此 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/

相关文章:

assembly - 我应该如何表示要在彩色计算机程序中使用的霍夫曼树?

c++ - 径向树布局算法

python - 插入二叉搜索树

java - 是否有标准的 Java NonNullable<T> 泛型,如果没有,为什么不呢?

java - Java 项目中服务器和客户端包的共享资源

java - Java API 是否有数据结构来表示层次结构

python - 创建一个函数来自动化 SQL 连接

string - 实现字典的最佳数据结构?

java - 退出 Activity 时如何在 Firestore 中执行 delete() 操作?

java - 为什么原生 libmpg123 在带有 libgdx 的 Android 上花费这么长时间?