此层次结构的最佳基于对象的数据结构是什么



此层次结构的最佳基于对象的数据结构是什么

"text1"
   |---> "text2"
            |-----> List of objs

我可以做类似的事情

class Test(){
      String text1;
      HashMap<String,List<Obj>> text2ListOfObjs;
}

此类的使用者会做类似的事情

for(Test test: tests){
   iterate over hashmap
      ....
}

还有其他建议吗?

如果你想将"text1"映射到"text2",而这个映射到一个对象列表,为什么不只使用嵌套map:Map<String, Map<String, List<Obj>>>

面向对象的设计应该传达意义。您应该向我们提供此层次结构的实际上下文,而不是抽象元素。任何数据结构都可以用来反映你呈现的元素,但它不一定是一个好的设计,这取决于含义、行为和上下文。

几种可能的结构:

class Person {
    String name;
    Relation relation;
}
class Relation {
    String type;
    List<Person> members;
}
例如,名为"阿尼"的人和

类型为"朋友"的关系,以及名称为"伯特"、"米妮"和"乔尔"的人作为成员。

class Song {
    String title;
    String composer;
    List<Note> notes;
}

或者更扁平的模型:

Object[] data;

我们可以实例化:

data = new Object[] { "text1", "text2", new Object(), new Integer(), new BlaBla() };

所有这些都是符合要求的"面向对象"模型,但是哪个是最好的取决于您要表示的内容以及系统的行为方式。

最新更新