- 浏览: 250783 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
rdsgf:
也就是导出。。。如何把生成的图片导出到本地,有没有接口?
报表 charts4j -
rdsgf:
你好,请问生成的图片如何保存到本地?
报表 charts4j -
刘焕杰:
楼主,为啥放进去后,我下载的中文文件名还是乱码呢?
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题 -
814687491:
Ext Panel 动态 加载 html -
yxyysu:
下载之后使用了,没有解决上传时中文名字乱码问题,请博主指导。
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题
最近在生成Ext的树型结构是,要用递归的算法来实现从数据库中读取出对应的json数据结构
在 网上找到一个不错的算法。一起来分享下:
上面的节点结构为:
上面的算法简单。主要就是要有要遍历的节点和一个父节点的集合。
在 网上找到一个不错的算法。一起来分享下:
import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Recursion { StringBuffer returnStr=new StringBuffer(); List nodeList =new ArrayList(); // 构造方法里初始化模拟List,添加测试数据 Recursion() { Node node1 = new Node(1,0); Node node2 = new Node(2,1); Node node3 = new Node(3,1); Node node4 = new Node(4,2); Node node5 = new Node(5,2); Node node6 = new Node(6,2); Node node7 = new Node(7,6); Node node8 = new Node(8,6); nodeList.add(node1); nodeList.add(node2); nodeList.add(node3); nodeList.add(node4); nodeList.add(node5); nodeList.add(node6); nodeList.add(node7); nodeList.add(node8); } /** * 递归函数 * @param list 要递归的节点对象集合 * @param node 要进行递归的节点 */ public void recursionFn(List list , Node node){ if(hasChild(list,node)){ returnStr.append("{id:"); returnStr.append(node.getId()); returnStr.append(",parentId:"); returnStr.append(node.getParentId()); returnStr.append(",children:["); List childList = getChildList(list,node); Iterator it = childList.iterator(); while(it.hasNext()){ Node n = (Node)it.next(); recursionFn(list,n); } returnStr.append("]},"); }else{ returnStr.append("{id:"); returnStr.append(node.getId()); returnStr.append(",parentId:"); returnStr.append(node.getParentId()); returnStr.append(",leaf:true},"); } } /** * 判断是否有孩子 * @param list * @param node * @return */ public boolean hasChild(List list, Node node){ //判断是否有子节点 return getChildList(list,node).size()>0?true:false; } /** * 找去node的所有子节点 * @param list 进行遍历的节点 * @param node 要找孩子的节点 * @return */ public List getChildList(List list , Node node){ //得到子节点列表 List li = new ArrayList(); Iterator it = list.iterator(); while(it.hasNext()){ Node n = (Node)it.next(); if(n.getParentId()==node.getId()){ li.add(n); } } return li; } public String modifyStr(String returnStr){//修饰一下才能满足Extjs的Json格式 return ("["+returnStr+"]").replaceAll(",]", "]"); } public static void main(String[] args) { Recursion r = new Recursion(); r.recursionFn(r.nodeList, new Node(1,0)); System.out.println(r.modifyStr(r.returnStr.toString())); } }
上面的节点结构为:
package com.ruijie.Test; public class Node { private int id; private int parentId; Node(){} Node(int id,int parentId){ this.id=id; this.parentId = parentId; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getParentId() { return parentId; } public void setParentId(int parentId) { this.parentId = parentId; } }
上面的算法简单。主要就是要有要遍历的节点和一个父节点的集合。
发表评论
-
Ext 右上角小图标 tool
2013-04-17 13:59 847tools: [ {id:'toggle'},{id:' ... -
Ext3.4源码之Store -> load() 与reload()
2013-04-03 17:52 21291. load()的源码 // 加载Store的数据 l ... -
Ext3.4源码之Ext.apply()和 Ext.applyif()
2013-04-03 10:08 11611. 查看ext-base.js中的源码可知: Ext.ap ... -
ext-basex.js 进行Ext.Ajax.request 同步请求 FF无法正常
2013-03-04 16:25 15501. ext-basex.js 下载地址. http://co ... -
Ext 上传附件返回值 <pre>json</pre>格式,ff报错
2012-12-19 14:37 823getResponse().getWriter().pri ... -
extjs store中数据转换成json
2012-11-19 17:42 44771. 主要有以下两种方法: var jsonData = ... -
view.getComputedStyle(div.firstChild.firstChild, null) is null
2012-11-07 15:13 946最近在开发时候发现一个很奇怪的错误: Ext 代码如下 ... -
Ext Grid 横行滚动条
2011-12-16 18:29 841主意配置 viewConfig: { auto ... -
Ext.data.Store 小细节收集
2011-10-14 15:09 16701. 常用的初始化方法 新建一个store一般的方法如下(一般 ... -
Ext.Ajax.request 小问题收集
2011-10-14 14:23 10081. Template 一般的Ext.Ajax.request ... -
拼音输入法下输入字母Ext combo 无法进行过滤修正
2011-10-13 10:20 1680最近项目中用来ext 的combo 发下下面一个问题 eg: ... -
Ext 2.x combo keyup事件无法响应
2011-10-12 18:38 1245Ext.override(Ext.form.Combo ... -
Ext Combo 添加空值并且显示出来
2011-10-08 16:15 31981、最简单的方案是在后台从数据库中查询了Combobox数据时 ... -
Ext Grid 小细节收集
2011-09-27 14:51 10001. columns 中的renderer参数 rende ... -
Ext Panel 动态 加载 html
2011-09-13 14:54 3297要实现动态加载html也是时候常用的有下面的方法: 1.aut ... -
Ext 小错误整合
2011-09-01 11:49 11091. Ext.this.addEvents is not a ... -
Ext ajax JSON 数据遍历
2011-07-24 02:08 6969需求:进行ajax请求后,后台传递回来以下json数据 ... -
Ext.TreePanel 的小问题集合
2011-07-07 21:35 7731.unterminated string literal ... -
jsp 进行下载时候乱码 ff正常,IE打开新页面
2011-07-06 22:04 1148最近在通过JSP实现下载的时候,发现火狐下面可以完全正常,但是 ... -
(问题)Ext Panel用autoLoad 加载html页面时一直显示Loading....
2011-06-23 11:08 0在做Panel使用autoLoad加载一个html页面时候出现 ...
相关推荐
.net 递归算法.net 递归算法.net 递归算法.net 递归算法.net 递归算法.net 递归算法.net 递归算法.net 递归算法
快速排序算法设计与分析总结 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现 二叉树与树的转换前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现 实现树与...
Java递归算法构造JSON树形结构,Java递归算法构造JSON树形结构Java递归算法构造JSON树形结构
VC对磁盘文件遍历搜索的递归算法和非递归算法 里面的文档是讲解递归算法和递归算法的 里面还有一个Vc工程文件,是我自己写的,关于非递归算法,其实里面那些被注释掉的部分是递归算法,大家仔细看看就知道了,
递归算法详解递归算法详解递归算法详解递归算法详解
C#使用递归算法,生成并画树形状的图形。详细介绍请到博客中看看
5!递归算法和非递归算法,面试专用,适合新手
用邻接矩阵存储的图,深度优先遍历,非递归算法~ 和PRIM 算法的最小生成树
18.递归算法与递归算法应用.ppt
acm递归算法总结acm递归算法总结!!!!!!!!!!!!!!!!!!!!!!!
实现树与二叉树的转换的实现。以及树的前序、后序的递归、非递归算法,层次序的非递归算法的实现,应包含建树的实现。
递归算法转为非递归算法。方法、过程,用栈的原理
折半查找的递归算法,非常实用,可以实现的C语言程序
利用递归算法求阶乘(VB6.0源代码)利用递归算法求阶乘。VB6.0源代码
.Net 初学者的树控件和递归算法求阶乘 .Net 初学者的树控件和递归算法求阶乘
合并排序递归和非递归算法的实现可以让人理解到递归算法的实现有时候比非递归算法效率高很多,人只需要给出一个递归公式和一个递归出口,所有的事都可以交给计算机来完成了
主要介绍了JavaScript递归算法生成树形菜单,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
快速选择非递归与递归算法实现
递归算法计算二叉树中叶子节点的数目
关于三维地形渲染的lod四叉树算法中的基本四叉树递归算法