-
import java.util.ArrayList;
-
import java.util.HashMap;
-
import java.util.List;
-
import java.util.Map;
-
-
public class TestTree {
-
public static void main(String[] args) {
-
TestData data = new TestData();
-
Map<String, TreeNode> midStr = new HashMap<String, TreeNode>();
-
-
/**把list中的数据 放到 map中,方便后续的查找*/
-
for (int n = 0; n < data.listTreeNode.size(); n++) {
-
midStr.put(data.listTreeNode.get(n).getId(),
-
data.listTreeNode.get(n));
-
}
-
-
String root = null; //用来保存根节点的id
-
-
/*关键操作
-
* 遍历 map 中的TreeNode 找到 父亲节点,如果找不到父亲节点,那这个TreeNode就是根节点。
-
* 把自己放到父亲节点的 children 列表中
-
*/
-
for (Map.Entry<String, TreeNode> entry : midStr.entrySet()) {
-
TreeNode t = midStr.get(entry.getValue().getParentId());
-
if (t != null)
-
midStr.get(entry.getValue().getParentId()).getChildren()
-
.add(entry.getValue());
-
else
-
root = entry.getKey();
-
}
-
System.out.println(midStr.get(root));
-
TreeNode ret = midStr.get(root);
-
System.out.println(\"\");
-
-
}
-
}
-
-
/**
-
* 树形结构
-
* */
-
class TreeNode {
-
private String id;
-
private String parentId;
-
private List<TreeNode> children = new ArrayList<TreeNode>();;
-
-
public TreeNode(String p_id, String p_parentId) {
-
this.id = p_id;
-
this.parentId = p_parentId;
-
}
-
-
public String getId() {
-
return id;
-
}
-
-
public void setId(String id) {
-
this.id = id;
-
}
-
-
public String getParentId() {
-
return parentId;
-
}
-
-
public void setParentId(String parentId) {
-
this.parentId = parentId;
-
}
-
-
public List<TreeNode> getChildren() {
-
return children;
-
}
-
-
public void setChildren(List<TreeNode> children) {
-
this.children = children;
-
}
-
-
}
-
-
/**
-
* 模拟数据库返回数据 List <DTO>
-
* */
-
class TestData {
-
public List<TreeNode> listTreeNode = new ArrayList<TreeNode>();
-
TestData() {
-
listTreeNode.add(new TreeNode("1", "0"));
-
-
listTreeNode.add(new TreeNode("7", "3"));
-
-
listTreeNode.add(new TreeNode("2", "1"));
-
-
listTreeNode.add(new TreeNode("3", "1"));
-
-
listTreeNode.add(new TreeNode("4", "2"));
-
-
listTreeNode.add(new TreeNode("5", "2"));
-
-
listTreeNode.add(new TreeNode("6", "1"));
-
}
-
}
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30066956/viewspace-1371172/
,如需转载,请注明出处,否则将追究法律责任。