此层次结构的最佳基于对象的数据结构是什么
"text1"
|---> "text2"
|-----> List of objs
我可以做类似
的事情class Test(){
String text1;
HashMap<String,List<Obj>> text2ListOfObjs;
}
这个类的消费者会做类似
的事情for(Test test: tests){
iterate over hashmap
....
}
还有其他建议吗?
答案 0 :(得分:2)
如果要将“text1”映射到“text2”并将其映射到对象列表,为什么不使用嵌套映射:Map<String, Map<String, List<Obj>>>
?
答案 1 :(得分:0)
面向对象的设计应该传达意义。您应该向我们提供此层次结构的实际上下文而不是抽象元素。任何数据结构都可以用来反映您呈现的元素,但它不一定是一个好的设计,具体取决于含义,行为和背景。
一些可能的结构:
class Person {
String name;
Relation relation;
}
class Relation {
String type;
List<Person> members;
}
例如名为'Arnie'的人和名为“friends”的关系,以及名为“Bert”,“Minnie”和“Joel”的人员。
class Song {
String title;
String composer;
List<Note> notes;
}
或者更平坦的模特:
Object[] data;
我们可以实例化:
data = new Object[] { "text1", "text2", new Object(), new Integer(), new BlaBla() };
所有这些都是符合条件的“面向对象”模型,但最好的取决于您要表示的内容以及系统的行为方式。