记录转化为有层次结构的树状列表的通用算法
来源:互联网 发布:windows udp端口监听 编辑:程序博客网 时间:2024/04/29 08:54
转载:http://www.cnblogs.com/ejiyuan/archive/2007/11/27/973765.html
在获取数据库记录数据的时候, 通常返回的ArrayList集合, 没有了层次关系. 如果每次根据PID重新到数据库获取记录, 可以做到, 但有以下几个缺点:
1. 访问数据库记录次数随着记录的增多而增多
2. 由于需要多次访问数据库, 因此访问速度受影响
3. 需要数据库访问层的支持, 并对记录进行转化, 耦合性太强
4. 通用性不好, 每次需要一个新的类型列表, 就需要
我根据原有的树状结构算法代码, 编写一个通用的算法, 利用反射原理, 递归的对数据进行筛选.
这样只需要访问数据库一次, 然后就在内存中遍历, 而且适合于所有具有(PID, ID, Name)属性的实体类集合的排序.
如我需要生成设备类型实体类集合的树状结构时候, 代码如下:
效果图如下
- 记录转化为有层次结构的树状列表的通用算法
- 通用列表数据转化为树形结构
- 在.net 中 将线性结构数据列表转换为 XML 格式的层次结构
- 二叉树的树状数组和双向列表有区别,一个是针对明显的树状结构,一个是可以用来表示树状结构,Uva122
- 数组转化为列表的一个陷阱
- 递归(任何有赋值,if-else和循环的结构都可以转化为递归)
- 一个通用的方法(将数据库记录转化成对象)
- cocos2D 学习记录 一:CCNode类的层次结构
- 存储系统的层次结构
- 存储器的层次结构
- unix的层次结构
- J2EE的层次结构
- 驱动程序的层次结构
- 类的层次结构
- 驱动的层次结构
- Thrift的层次结构
- 类的层次结构
- DW的层次结构
- 潜阅读-转
- 以BMP图片为蓝本创建不规则窗口
- HyperLink链接动态传参数(Web.Config中设置绑定样式:格式字符串)
- spring管理下系统加载类
- System.Runtime.InteropServices.COMException The Product License has not been initialized. ESRI GeoDatabase
- 记录转化为有层次结构的树状列表的通用算法
- Convert.ToInt32() 与int.Parse()的区别
- Android Property System
- root邮件的转送
- java主板蜂鸣器响
- 计算循环使用的数组的index
- 添加、编辑信息类
- wxPython 开发资料
- 停止打印服务