所以我有一个我正在阅读的文件,它的格式 组件可以具有任意数量的子组件和叶子。
comp1 : data
comp1 childs : comp2, comp3, comp4
comp2 : Data
comp2 childs : leaf 1, comp5
leaf 1 :data
comp5 : data
comp5 childs: leaf2:
Leaf2 : data
comp3 :data
comp4 :data
将子节点添加到父节点的最简单方法是什么?我的大脑是油炸的,无法解释这一点。请帮忙,我使用复合模式,comp(osite)实现组件和leaf实现组件。我的comp课有一个Arraylist来容纳它的孩子。
编辑: 好吧,它不是超级正确的方式,但我通过这样做得到了它的工作。在我读取文件的地方,我将所有组件存储在一个大型临时文件中。每当它在子节点中读取时,我将它们作为字符串存储在列表中的列表中,其中第一个索引是父节点id name。 这是我文件阅读之后。
for(ArrayList ls:listOf){
if (ls.size()>1){
for (int i = 1; i<ls.size();i++){
for(Component comp:tempchilds){
if(ls.get(i).equals(comp.name())){
rootComp.add(ls.get(0).toString(), comp);
}
}
}
}
}
这是我的组件在root中查找父级并将子级添加到其中的功能
public void add(String s,Component component){
if(this.name.equals(s)){
comps.add(component);
}else{
if(!comps.isEmpty()){
for(Component comp:comps){
comp.add(s, component);
}
}
}
}
很糟糕,但它有效。哈哈。还在学习,随时告诉我它有多糟糕和原因。