java構建是什么意思,java children_java構建樹形列表(帶children屬性)

 2023-11-30 阅读 26 评论 0

摘要:/*** 樹形表格工具類**@authoryanggb*/public classTreeTableUtil {/*** 把列表轉換為樹結構*java構建是什么意思。*@paramoriginalList 原始list數據*@paramidFieldName 作為唯一標示的字段名稱*@parampidFieldName 父節點標識字段名*@paramchildrenFiel

/*** 樹形表格工具類

*

*@authoryanggb*/

public classTreeTableUtil {/*** 把列表轉換為樹結構

*

java構建是什么意思。*@paramoriginalList 原始list數據

*@paramidFieldName 作為唯一標示的字段名稱

*@parampidFieldName 父節點標識字段名

*@paramchildrenFieldName 子節點(列表)標識字段名

*@return樹結構列表*/

public static List list2TreeList(ListoriginalList, String idFieldName, String pidFieldName,

Java編程 自定義treenode,String childrenFieldName) {//獲取根節點,即找出父節點為空的對象

List rootNodeList = new ArrayList<>();for(T t : originalList) {

String parentId= null;try{

parentId=BeanUtils.getProperty(t, pidFieldName);

}catch (IllegalAccessException | InvocationTargetException |NoSuchMethodException e) {

e.printStackTrace();

java項目構建。}if(StringUtils.isBlank(parentId)) {

rootNodeList.add(0, t);

}

}//將根節點從原始list移除,減少下次處理數據

originalList.removeAll(rootNodeList);//遞歸封裝樹

try{

java構建路徑?packTree(rootNodeList, originalList, idFieldName, pidFieldName, childrenFieldName);

}catch(Exception e) {

e.printStackTrace();

}returnrootNodeList;

}/*** 封裝樹(向下遞歸)

*

java遞歸樹。*@paramparentNodeList 要封裝為樹的父節點對象集合

*@paramoriginalList 原始list數據

*@paramkeyName 作為唯一標示的字段名稱

*@parampidFieldName 父節點標識字段名

*@paramchildrenFieldName 子節點(列表)標識字段名*/

private static void packTree(List parentNodeList, ListoriginalList, String keyName,

java實現樹。String pidFieldName, String childrenFieldName)throwsException {for(T parentNode : parentNodeList) {//找到當前父節點的子節點列表

List children =packChildren(parentNode, originalList, keyName, pidFieldName, childrenFieldName);if(children.isEmpty()) {continue;

}//將當前父節點的子節點從原始list移除,減少下次處理數據

originalList.removeAll(children);//開始下次遞歸

packTree(children, originalList, keyName, pidFieldName, childrenFieldName);

}

java遞歸生成樹結構,}/*** 封裝子對象

*

*@paramparentNode 父節點對象

*@paramoriginalList 原始list數據

*@paramkeyName 作為唯一標示的字段名稱

*@parampidFieldName 父節點標識字段名

java構建樹形結構。*@paramchildrenFieldName 子節點(列表)標識字段名*/

private static List packChildren(T parentNode, ListoriginalList, String keyName, String pidFieldName,

String childrenFieldName)throwsException {//找到當前父節點下的子節點列表

List childNodeList = new ArrayList<>();

String parentId=BeanUtils.getProperty(parentNode, keyName);for(T t : originalList) {

String childNodeParentId=BeanUtils.getProperty(t, pidFieldName);if(parentId.equals(childNodeParentId)) {

java構建路徑順序?childNodeList.add(t);

}

}//將當前父節點下的子節點列表寫入到當前父節點下(給子節點列表字段賦值)

if (!childNodeList.isEmpty()) {

FieldUtils.writeDeclaredField(parentNode, childrenFieldName, childNodeList,true);

}returnchildNodeList;

java構建。}

}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/185967.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息