如何在Java中返回樹形結構 最佳實踐
點選(此處)摺疊或開啟
-
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部落格 ” ,連結:http://blog.itpub.net/30066956/viewspace-1371172/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java樹形結構Java
- 如何在 Laravel 中去構建部門樹形結構 APILaravelAPI
- 樹形結構
- 資料結構中樹形結構簡介資料結構
- layui樹形結構UI
- Gulp 結構化最佳實踐
- [Swing]樹形結構的實現
- Java最佳實踐小結 - jonathangilesJava
- 樹形結構處理
- JAVA樹形結構 通用程式碼(高效能)Java
- 樹結構與Java實現Java
- 七、基本資料結構(樹形結構)資料結構
- markdown樹形結構生成工具
- Nestjs最佳實踐教程:3模型關聯與樹形巢狀JS模型巢狀
- Java最佳實踐Java
- Vue遞迴元件實現樹形結構選單Vue遞迴元件
- LayUI—tree樹形結構的使用UI
- jmeter 樹結構返回亂碼解決JMeter
- Vert.x 程式碼結構最佳實踐
- Java null最佳實踐JavaNull
- Java 反射最佳實踐Java反射
- Java 的最佳實踐Java
- 不用遞迴實現樹形結構的一種方法遞迴
- Linux用樹形結構顯示目錄結構Linux
- 字串陣列轉為樹形結構字串陣列
- php tree類的使用(樹形結構)PHP
- 一個簡單的樹形結構
- 如何在 Java 中實現二叉搜尋樹Java
- Java 8中的Lambda表示式最佳實踐Java
- Java中的異常處理最佳實踐Java
- Java實現遞迴查詢樹結構Java遞迴
- 選擇結構還是類?C#中的最佳實踐與效能最佳化指南C#
- 如何在 Java 中實現最小生成樹演算法Java演算法
- Linux 下樹形結構的檢視Linux
- 將List物件列表轉為樹形結構物件
- Android 多級樹形結構顯示Android
- 樹形結構的儲存與查詢
- Oracle 樹形結構查詢的特殊用法Oracle