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

时间:2017-02-13 18:52:26

标签: 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。我在这里重新发明轮子,这是解决我面临的问题的有效方法吗?

1 个答案:

答案 0 :(得分:1)

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

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

我把它设为Set,因为你想保持名称的唯一性,但是,你必须实现一些东西来递归检查它是否存在。此外,您需要实现equals方法。

我还将ArrayList更改为List,因为编码为Interface

是一种很好的编程习惯