java - 灵活的分支/列表数据结构?

标签 java data-structures

我需要一个灵活的结构来将数据保存在树结构中的任何位置,以便稍后导出到 JSON。我的实际数据可能位于该树中的任何位置。这是我正在谈论的结构。

-1
  -1.1
    -Data
    -Data
    -..
  -1.2
    -Data
    -Data
    -..
    -1.2.1
      -Data
      -Data
      -..
-2
  -Data
  -Data
  -..
  -2.1
    -2.1.1
      -Data
      -Data

数据可以出现在树中的任何位置。这些数字最终应该是可读的字符串。一旦序列化为 JSON,这些应该作为转出列表进入其他应用程序。

我有以下内容:

public class Branch {
    String name; //Substitute for the numbers
    Branch deeperBranch;
    ArrayList<Data> data;
}

我想确保的另一件事是,每当创建重复的 Branch.name 时,它都会进入现有的 Branch 中。我是否在这里重新发明轮子,这是否是解决我面临的问题的有效方法?

最佳答案

我认为没有一种结构可以方便地满足您的需求。话虽如此,我认为创建起来相当简单:

public class Branch {
    String name; //Substitute for the numbers
    Set<Branch> subBranches;
    List<Data> data;
}

我将其设为Set,因为您希望保持名称唯一,但是,您必须实现一些东西来递归检查它是否存在。此外,您还需要实现 equals 方法。

我还将 ArrayList 更改为 List,因为将代码编写到 Interface 是一种很好的编程习惯

关于java - 灵活的分支/列表数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42211394/

相关文章:

c - 我是否在 updateDate 函数中正确使用了指针?

java - 插入到已排序的 LinkedList Java

java - 如何使用 Retrofit 处理 JSON 响应

java - c3p0 日志记录不起作用

java - 如何在 Eclipse 中引用外部 JAR 中的类?

java - 替换java中的整个字符串

c++ - 为什么插入相同数量的集合会根据不同的方法有不同的运行时间?

c++ - C++ 中的 Trie 实现

java - 在 JUnit 的测试类中定义内部类时出错

algorithm - 如何在恒定时间内从稀疏表中删除行/列?