非递归方式线性结构转换为树型结构(zTree核心)
来源:互联网 发布:沈阳seo搜索优化软件 编辑:程序博客网 时间:2024/05/16 18:48
import java.util.List;public class Node { /** * 当前节点 */ private String id; /** * 当前名称 */ private String nm; /** * 父节点 */ private String pid; /** * 子节点集合 */ private List<Node> sn; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getNm() { return nm; } public void setNm(String nm) { this.nm = nm; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public List<Node> getSn() { return sn; } public void setSn(List<Node> sn) { this.sn = sn; } @Override public String toString() { return "Node{" + "id='" + id + '\'' + ", nm='" + nm + '\'' + ", pid='" + pid + '\'' + ", sn=" + sn + '}'; }}
@Test public void testLineTypeTraslateTree(){ String jsonStr = "[{\"id\":\"1\",\"pid\":\"0\",\"nm\":\"水果\"},{\"id\":\"11\",\"pid\":\"1\",\"nm\":\"苹果\"}," + "{\"id\":\"12\",\"pid\":\"1\",\"nm\":\"橘子\"},{\"id\":\"111\",\"pid\":\"11\",\"nm\":\"富士山品牌\"}]"; JSONArray jsonArray = JSONArray.fromObject(jsonStr); List<Node> nodes = JSONArray.toList(jsonArray, Node.class); System.out.println(nodes.toString()); int len = nodes.size(), i = 0, j = 0; Map<String, Node> nodeMap = new HashMap<String, Node>(len); for (; i < len; i++) { nodeMap.put(nodes.get(i).getId(), nodes.get(i)); } List<Node> result = new ArrayList<Node>(len); for (; j < len; j++) { Node curNode = nodes.get(j), parentNode = nodeMap.get(curNode.getPid()); if (parentNode == null) { result.add(curNode); } else { if (parentNode.getSn() == null) { parentNode.setSn(new ArrayList<Node>()); } parentNode.getSn().add(curNode); } } System.out.println(result); }
0 0
- 非递归方式线性结构转换为树型结构(zTree核心)
- 将树形结构的数据转换为二维数组 (续 PHP非递归方式实现无限分类(转载))
- 将给定格式的线性结构转换为树形结构
- sql 树型结构查询 递归方式
- 非递归学习树结构(二)--前中后遍历
- 非递归学习树结构(三)--深广优先搜
- 非递归学习树结构(六)--RB-Tree(红黑树)
- JQuery zTree树结构使用
- jquery 树结构组件 ------ zTRee
- 树结构控件:jQuery zTree
- 多表联查加载zTree树结构
- 树形结构非递归算法
- 在.net 中 将线性结构数据列表转换为 XML 格式的层次结构
- 关于树型结构数据递归查询,转非递归查询的实现
- 二叉树的递归与非递归遍历(二叉链表结构)
- 二叉树的基本结构以及建树、遍历(递归、非递归)
- 不使用存储结构(非栈、非递归)遍历二叉树
- 【zTree系列】树形结构zTree
- Climbing Stairs
- 《MySQL必知必会学习笔记》:触发器
- 第七周实践项目-用多文件组织多个类的程序
- libevent带负载均衡的多线程使用示例
- Mybatis_PageHelper
- 非递归方式线性结构转换为树型结构(zTree核心)
- java.lang.NoClassDefFoundError: * : Landroid/support/v7/gridlayout/R$styleable 异常终极解决办法
- Quagga(zebra)安装配置
- [LeetCode]141. Linked List Cycle
- 项目21--成员函数、友元函数和一般函数有区别
- Android自定义View的官方套路
- AndroidStudio统计代码行数
- 【leetcode】Add Digits[easy]
- 代付业务