转树和列表中查找某节点下的所有数据操作

  

<>强类的实例化顺序

  

父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,

  

父类非静态变量(父类实例成员变量),父类构造函数、子类非静态变量(子类实例成员变量),子类构造函数。

  

已知组织类Org{字符串id、字符串名称字符串parentId},现在一List中存放无序的机构数据,求一个组织id下的所有组织。

        公共静态List,childList=new ArrayList<的在();   公共静态ListfindChild (List列表中,字符串id) {   (组织机构:列表){   如果(org.getParentId () .equals (id)) {   childList.add(组织);   findChild(列表,org.getId ());//递归实现      }   }   返回childList;   }      

<强>列表树转:

     //节点一开始为根节点   公共静态TreeNode listToTree (TreeNode节点,ListsourceLit) {//重根节点开始   (TreeNode sourceNode: sourceLit) {   如果(sourceNode.getpId ()==node.getId ()) {   如果(node.getChildrenList ()==null) {   节点。setChildrenList(新ArrayList ());   }   node.getChildrenList ()。add (listToTree (sourceNode sourceLit));   }   }   返回节点;   }      

<强> Java实现树数据树与列表互转并逐级汇总节点的值(支持树节点多列统计)

  

主要需求:。实现树树与列表互转b.Tree实现多列统计数据汇总。前度采用MiniUI。

  

逐级汇总数据:找到最小节点,然后回溯其所有父节点,注意值的重复计算问题。

  

转树和列表中查找某节点下的所有数据操作

  

转树和列表中查找某节点下的所有数据操作

  

构造一棵树的基本节点:

        包com.example.demo.tree;   进口java.util.ArrayList;   进口并不知道;/* *   * @ClassName: TreeNode   * @Description:待办事项(树的节点对象)   * @author: pengjunlin   * @motto:学习需要毅力,那就秀毅力   * @date 2019-06-18二三35   */公开课TreeNode {/* *   *节点ID   */私人长id;/* *   *显示名称   */私人标签字符串;/* *   *当前节点的唯一值   */私人双重价值;/* *   *当前节点的多个值的表达方式   */私人双新双[][]multivalue={};/* *   *汇总单个节点的多个值   */私人List值=new ArrayList ();/* *   *当前节点所有子节点的值集合   */私人List<双[]比;childrenMultiValues=new ArrayList<双[]祝辞();/* *   *父节点ID   */私人长pid;/* *   *子节点集合对象   */私人List孩子=new ArrayList ();/* *   *是否计算本身   */私人布尔addSelf=false;      公共长getId () {   返回id;   }      公共空间setId (id) {   这一点。id=id;   }      公共字符串getLabel () {   返回标签;   }      公共空间setLabel(字符串标签){   这一点。标签=标签;   }      公共双getValue () {   返回值;   }      公共空间setValue(双重价值){   这一点。值=https://www.yisu.com/zixun/value;   }      公共双[]getMultiValues () {   返回multivalue;   }      公共空间setmultivalue (double [] multivalue) {   这一点。multivalue=multivalue;   }      公共列表<二> getvalue () {   返回值;   }      公共空间setvalue(<双>值列表){   这一点。值=值;   }      公共列表<双[]> getChildrenMultiValues () {   返回childrenMultiValues;   }      公共空间setChildrenMultiValues(列表<双[]> childrenMultiValues) {   这一点。childrenMultiValues=childrenMultiValues;   }      公共长getPid () {   返回pid;   }      公共空间setPid (pid) {   这一点。pid=pid;   }      公共列表调用getChildren () {   返回的孩子;   }      公共空间setChildren(列表儿童){   这一点。孩子=孩子;   }      公共布尔isAddSelf () {   返回addSelf;   }      公共空间setAddSelf(布尔addSelf) {   这一点。addSelf=addSelf;   }   }      

构造树管理工具:

        包com.example.demo.tree;   进口java.util.ArrayList;   进口java.util.HashMap;   进口并不知道;   进口java.util.Map;/* *   * @ClassName: TreeManager   * @Description:待办事项(树结构数据管理——实践验证)   * @author: pengjunlin   * @motto:学习需要毅力,那就秀毅力   * @date 2019-06-18 23:47   */公开课TreeManager {/* *   *将列表转成树结构数据   * @param列表   * @param rootId默认顶级节点ID   * @return   */公共静态List

转树和列表中查找某节点下的所有数据操作