您的位置:首页 > 其它

父子关系的节点进行排成Tree所需的数据

2018-01-08 09:17 302 查看
1 具有父子关系的节点。就是一个一个的bean类。可以设置为如下方式。具有child属性。是List类型的

如:public class TestNode {

private String parentId;
private String id;
private List<TestNode> child;
public TestNode() {
super();
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<TestNode> getChild() {
return child;
}
public void setChild(List<TestNode> child) {
this.child = child;
}

public void addChild(TestNode node){
if(this.child==null){
this.child=new ArrayList<TestNode>();
}
this.child.add(node);
}

}

2 将具有父子关系的节点排成Tree所需的数据。需要将这些节点进行排序。设置为child格式的那种。方法是现将这些数据一个一个的加入到map和map_中。然后再讲map_中的节点一个一个的取出来。一个一个的添加到map中的父节点中。

如:Map<String,TestNode> map=new HashMap<String,TestNode>();
Map<String,TestNode> map_=new HashMap<String,TestNode>();

for(int i=0;i<list.size();i++){
TestNode node=list.get(i);
map.put(node.getId(),node);//添加到map中
map_.put(node.getId(),node);//添加到map_中
}

map.put("/",new TestNode());

Iterator iterator=map_.keySet().iterator();
while(iterator.hasNext()){//将map_中的节点一个一个的取出来。放入map中的父节点中。
String key=iterator.next().toString();
TestNode node=map_.get(key);

String parentId=node.getParentId();
TestNode parentNode=map.get(parentId);
parentNode.addChild(node);
}

return map.get("/").getChild().get(0);

3 如何将根节点(具有父子节点的)转化为String类型。就是先转化为JSON类型。然后toString()类型

如:TestNode node_root=new TestMain1().dedaoTree(list);//返回的是具有父子关系的节点。

System.out.println(JSONObject.fromObject(node_root).toString());

4 如何将父子关系的节点进行排成为Tree所需的数据。首要一步是该节点(bean类)具有parentId,id,child属性。还有addChild方法。如1所示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐