当前位置: 首页 > news >正文

杭州做销售去哪个网站好教你做cpa单页网站

杭州做销售去哪个网站好,教你做cpa单页网站,linkcat wordpress,网络管理员证书含金量在平时的开发工作中#xff0c;经常遇到这样一个场景#xff0c;在数据库中存储了具有父子关系的数据#xff0c;需要将这些数据以树形结构的形式在界面上进行展示。本文的目的是提供了一个通用的编程模型#xff0c;解决将具有父子关系的数据转换成树形结构的问题。如有不…在平时的开发工作中经常遇到这样一个场景在数据库中存储了具有父子关系的数据需要将这些数据以树形结构的形式在界面上进行展示。本文的目的是提供了一个通用的编程模型解决将具有父子关系的数据转换成树形结构的问题。如有不正之处欢迎大家批评指正。编程模型我们以北京行政区划为例讲解整个模型。北京市市辖区 县市辖区东城区 西城区 朝阳区 丰台区 石景山区 海淀区 门头沟区 房山区 通州区 顺义区 昌平区 大兴区 怀柔区 平谷区县密云县 延庆县UML类图如下Tree结构TreeNode:定义树的节点对象nodeId树节点Id。nodeName树节点名称。parentNodeId树节点父Id。orderNum节点在树中的排序号在同一节点下进行排序。level当前树节点所在的层级根节点为第一层。parent当前树节点的父节点。children当前树节点的儿子节点。allChildren当前树节点的子孙节点。ITree定义树对象要实现的方法。getTree()以 List 形式返回树的所有的 TreeNode 对象。getRoot()以 List 形式返回树的根节点可能是一个或者多个。getTreeNode(String nodeId)根据 nodeId 返回对应的 TreeNode 对象。Tree实现 ITree 接口提供树的完整功能。getTree()以 List 形式返回树的所有的 TreeNode 对象。getRoot()以 List 形式返回树的根节点可能是一个或者多个。getTreeNode(String nodeId)根据 nodeId 返回对应的 TreeNode 对象。ITreeNode定义模板方法构造树形结构的类要实现该接口Tree 通过调用该接口中的方法获取 nodeId nodeName parentNodeId orderNum 数据。getNodeId()获取树节点Id。getNodeName()获取树节点名称。getParentNodeId()获取树节点父Id。getOrderNum()获取节点在树中的排序号在同一节点下进行排序。Org定义行政区划类实现 ItreeNode 接口。---------------------在平时的开发工作中经常遇到这样一个场景在数据库中存储了具有父子关系的数据需要将这些数据以树形结构的形式在界面上进行展示。本文的目的是提供了一个通用的编程模型解决将具有父子关系的数据转换成树形结构的问题。如有不正之处欢迎大家批评指正。编程模型我们以北京行政区划为例讲解整个模型。北京市市辖区 县市辖区东城区 西城区 朝阳区 丰台区 石景山区 海淀区 门头沟区 房山区 通州区 顺义区 昌平区 大兴区 怀柔区 平谷区县密云县 延庆县UML类图如下Tree结构TreeNode:定义树的节点对象nodeId树节点Id。nodeName树节点名称。parentNodeId树节点父Id。orderNum节点在树中的排序号在同一节点下进行排序。level当前树节点所在的层级根节点为第一层。parent当前树节点的父节点。children当前树节点的儿子节点。allChildren当前树节点的子孙节点。ITree定义树对象要实现的方法。getTree()以 List 形式返回树的所有的 TreeNode 对象。getRoot()以 List 形式返回树的根节点可能是一个或者多个。getTreeNode(String nodeId)根据 nodeId 返回对应的 TreeNode 对象。Tree实现 ITree 接口提供树的完整功能。getTree()以 List 形式返回树的所有的 TreeNode 对象。getRoot()以 List 形式返回树的根节点可能是一个或者多个。getTreeNode(String nodeId)根据 nodeId 返回对应的 TreeNode 对象。ITreeNode定义模板方法构造树形结构的类要实现该接口Tree 通过调用该接口中的方法获取 nodeId nodeName parentNodeId orderNum 数据。getNodeId()获取树节点Id。getNodeName()获取树节点名称。getParentNodeId()获取树节点父Id。getOrderNum()获取节点在树中的排序号在同一节点下进行排序。Org定义行政区划类实现 ItreeNode 接口。实现代码TreeNode类package com.ips.tree;import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.annotation.JSONField;/*** Title: 树节点* Description:一棵树由许多包含父子关系的节点组成 * author  liuzhibo* date    2017年1月18日*/public class TreeNode {//树节点IDJSONField(ordinal1)private String nodeId;//树节点名称JSONField(ordinal2)private String nodeName;//父节点IDJSONField(ordinal3)private String parentNodeId;//节点在树中的排序号JSONField(ordinal4)private int orderNum;//节点所在的层级JSONField(ordinal5)private int level;private TreeNode parent;//当前节点的二子节点JSONField(ordinal6)private List children new ArrayList();//当前节点的子孙节点private List allChildren new ArrayList();public TreeNode(ITreeNode obj){this.nodeId obj.getNodeId();this.nodeName obj.getNodeName();this.parentNodeId obj.getNodeParentId();this.orderNum obj.getOrderNum();}public void addChild(TreeNode treeNode){this.children.add(treeNode);}public void removeChild(TreeNode treeNode){this.children.remove(treeNode);}public String getNodeId() {return nodeId;}public void setNodeId(String nodeId) {this.nodeId nodeId;}public String getNodeName() {return nodeName;}public void setNodeName(String nodeName) {this.nodeName nodeName;}public String getParentNodeId() {return parentNodeId;}public void setParentNodeId(String parentNodeId) {this.parentNodeId parentNodeId;}public int getLevel() {return level;}public void setLevel(int level) {this.level level;}public TreeNode getParent() {return parent;}public void setParent(TreeNode parent) {this.parent parent;}public List getChildren() {return children;}public void setChildren(List children) {this.children children;}public int getOrderNum() {return orderNum;}public void setOrderNum(int orderNum) {this.orderNum orderNum;}public List getAllChildren() {if(this.allChildren.isEmpty()){for(TreeNode treeNode : this.children){this.allChildren.add(treeNode);this.allChildren.addAll(treeNode.getAllChildren());}}return this.allChildren;}}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101ITree接口package com.ips.tree;import java.util.List;public interface ITree {public List getTree();public List getRoot();public TreeNode getTreeNode(String nodeId);}123456789Tree类package com.ips.tree;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;public class Tree implements ITree {private HashMap treeNodesMap new HashMap();private List treeNodesList new ArrayList();public Tree(List list){initTreeNodeMap(list);initTreeNodeList();}private void initTreeNodeMap(List list){TreeNode treeNode null;for(ITreeNode item : list){treeNode new TreeNode(item);treeNodesMap.put(treeNode.getNodeId(), treeNode);}Iterator iter treeNodesMap.values().iterator();TreeNode parentTreeNode null;while(iter.hasNext()){treeNode iter.next();if(treeNode.getParentNodeId() null || treeNode.getParentNodeId() ){continue;}parentTreeNode treeNodesMap.get(treeNode.getParentNodeId());if(parentTreeNode ! null){treeNode.setParent(parentTreeNode);parentTreeNode.addChild(treeNode);}}}private void initTreeNodeList(){if(treeNodesList.size() 0){return;}if(treeNodesMap.size() 0){return;}Iterator iter treeNodesMap.values().iterator();TreeNode treeNode null;while(iter.hasNext()){treeNode iter.next();if(treeNode.getParent() null){this.treeNodesList.add(treeNode);this.treeNodesList.addAll(treeNode.getAllChildren());}}}Overridepublic List getTree() {return this.treeNodesList;}Overridepublic List getRoot() {List rootList new ArrayList();if (this.treeNodesList.size() 0) {for (TreeNode node : treeNodesList) {if (node.getParent() null)rootList.add(node);}}return rootList;}Overridepublic TreeNode getTreeNode(String nodeId) {return this.treeNodesMap.get(nodeId);}}1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980ITreeNode 接口package com.ips.tree;public interface ITreeNode {public String getNodeId();public String getNodeName();public String getNodeParentId();public Integer getOrderNum();}12345678Org 类package com.ips.tree;public class Org implements ITreeNode {private String uuid;private String parentId;private String name;private Integer orderNum;private String code;private String type;public Org(){}public Org(String uuid, String parentId, String name, Integer orderNum, String code, String type){this.uuid uuid;this.parentId parentId;this.name name;this.orderNum orderNum;this.code code;this.type type;}Overridepublic String getNodeId() {return this.uuid;}Overridepublic String getNodeName() {return this.name;}Overridepublic String getNodeParentId() {return this.parentId;}Overridepublic Integer getOrderNum() {return this.orderNum;}public String getUuid() {return uuid;}public void setUuid(String uuid) {this.uuid uuid;}public String getParentId() {return parentId;}public void setParentId(String parentId) {this.parentId parentId;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getCode() {return code;}public void setCode(String code) {this.code code;}public String getType() {return type;}public void setType(String type) {this.type type;}public void setOrderNum(Integer orderNum) {this.orderNum orderNum;}}12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485TreeDemo 类执行该类的 main 方法查看效果。package com.ips.tree;import java.util.ArrayList;import java.util.List;import com.alibaba.fastjson.JSONObject;import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;public class TreeDemo {public static void main(String[] args) {Tree tree new Tree(genOrgList());TreeNode treeNode tree.getTreeNode(2);SimplePropertyPreFilter filter new SimplePropertyPreFilter(); // 构造方法里也可以直接传需要序列化的属性名字filter.getExcludes().add(parent);filter.getExcludes().add(allChildren);String data JSONObject.toJSONString(treeNode, filter);System.out.println(data);}public static List genOrgList(){List list new ArrayList();Org org new Org(2, 1, 北京市, 2, 110000, 2);list.add(org);org new Org(3, 2, 市辖区, 3, 110100, 3);list.add(org);org new Org(4, 3, 东城区, 4, 110101, 4);list.add(org);org new Org(5, 3, 东城区, 5, 110102, 4);list.add(org);org new Org(6, 3, 东城区, 6, 110105, 4);list.add(org);org new Org(7, 3, 东城区, 7, 110106, 4);list.add(org);org new Org(8, 3, 东城区, 8, 110107, 4);list.add(org);org new Org(9, 3, 东城区, 9, 110108, 4);list.add(org);org new Org(10, 3, 东城区, 10, 110109, 4);list.add(org);org new Org(11, 3, 东城区, 11, 110111, 4);list.add(org);org new Org(12, 3, 东城区, 12, 110112, 4);list.add(org);org new Org(13, 3, 东城区, 13, 110113, 4);list.add(org);org new Org(14, 3, 东城区, 14, 110114, 4);list.add(org);org new Org(15, 3, 东城区, 15, 110115, 4);list.add(org);org new Org(16, 3, 东城区, 16, 110116, 4);list.add(org);org new Org(17, 3, 东城区, 17, 110117, 4);list.add(org);org new Org(18, 2, 县, 3, 110200, 3);list.add(org);org new Org(19, 18, 密云县, 19, 110228, 4);list.add(org);org new Org(20, 18, 延庆县, 20, 110229, 4);list.add(org);return list;}}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566执行结果如下{nodeId: 2,nodeName: 北京市,parentNodeId: 1,orderNum: 2,level: 0,children: [{nodeId: 18,nodeName: 县,parentNodeId: 2,orderNum: 3,level: 0,children: [{nodeId: 19,nodeName: 密云县,parentNodeId: 18,orderNum: 19,level: 0,children: []},{nodeId: 20,nodeName: 延庆县,parentNodeId: 18,orderNum: 20,level: 0,children: []}]},{nodeId: 3,nodeName: 市辖区,parentNodeId: 2,orderNum: 3,level: 0,children: [{nodeId: 17,nodeName: 东城区,parentNodeId: 3,orderNum: 17,level: 0,children: []},{nodeId: 15,nodeName: 东城区,parentNodeId: 3,orderNum: 15,level: 0,children: []},{nodeId: 16,nodeName: 东城区,parentNodeId: 3,orderNum: 16,level: 0,children: []},{nodeId: 13,nodeName: 东城区,parentNodeId: 3,orderNum: 13,level: 0,children: []},{nodeId: 14,nodeName: 东城区,parentNodeId: 3,orderNum: 14,level: 0,children: []},{nodeId: 11,nodeName: 东城区,parentNodeId: 3,orderNum: 11,level: 0,children: []},{nodeId: 12,nodeName: 东城区,parentNodeId: 3,orderNum: 12,level: 0,children: []},{nodeId: 10,nodeName: 东城区,parentNodeId: 3,orderNum: 10,level: 0,children: []},{nodeId: 7,nodeName: 东城区,parentNodeId: 3,orderNum: 7,level: 0,children: []},{nodeId: 6,nodeName: 东城区,parentNodeId: 3,orderNum: 6,level: 0,children: []},{nodeId: 5,nodeName: 东城区,parentNodeId: 3,orderNum: 5,level: 0,children: []},{nodeId: 4,nodeName: 东城区,parentNodeId: 3,orderNum: 4,level: 0,children: []},{nodeId: 9,nodeName: 东城区,parentNodeId: 3,orderNum: 9,level: 0,children: []},{nodeId: 8,nodeName: 东城区,parentNodeId: 3,orderNum: 8,level: 0,children: []}]}]}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149注该示例中使用了 alibaba 的 fastjson 实现类对象序列化maven 依赖如下com.alibabafastjson1.2.20---------------------作者zhiboer来源CSDN原文https://blog.csdn.net/claram/article/details/54616485版权声明本文为博主原创文章转载请附上博文链接
http://www.pierceye.com/news/763378/

相关文章:

  • 诸城网站建设报价兰州网站建设公司有哪些
  • 技术网站的费用怎么做会计分录潍坊模板开发建站
  • 男生女生在床上做的那个网站公众号推广一个6元
  • 湛江做网站设计公司北京婚恋网站哪家最好
  • 大型网站建设的难点是什么物联网技术
  • 怎么免费建个免费的站点写作网站5妙不写就删除
  • 深圳网站建设软件开发公司排名网站做301的坏处
  • ai网站制作的图片
  • 自己想开个网站怎么弄移动端网站设计欣赏
  • 国外网站建站上海品牌策划设计
  • 郑州网站制作选择乐云seo网站建设误区图
  • 湖南智能网站建设多少钱会声会影免费模板网站
  • 社区网站建设方案书建站之星官方网站
  • 过时的网站什么公司做企业网站
  • 最新企业网站搜索引擎优化是做什么
  • 提高网站公信力 单仁手机设计培训网站建设
  • asp.net网站管理系统域名注册报备
  • 买了个网站后怎么做如何提高 网站的点击量
  • 哪些行业网站推广做的多o2o商城源码
  • 北京seo站内优化电商网站前端页面响应式设计
  • 贵港seo关键词整站优化网站恶意攻击
  • 王磊网络网站建设公关
  • 怎么建网站做推广win网站建设
  • 在线做英语题的网站wordpress被设置不录入
  • 桃花岛网站是什么翻硬币网站怎么做
  • 做海报的网站有哪些内容windows同步wordpress
  • 制作网页的网站费用属于资本性支出吗安徽区块链虚拟币网站开发方案
  • 做网站前产品经理要了解什么搜索引擎优化免费
  • 广州网站建设技术方案营销网站推广策略
  • 郑州网站建设、中国菲律宾铁路项目