<>强类的实例化顺序强>
父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,
父类非静态变量(父类实例成员变量),父类构造函数、子类非静态变量(子类实例成员变量),子类构造函数。
已知组织类Org{字符串id、字符串名称字符串parentId},现在一List
公共静态List,childList=new ArrayList<的在(); 公共静态List findChild (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转树和列表中查找某节点下的所有数据操作