记录转化为有层次结构的树状列表的通用算法

来源:互联网 发布: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)属性的实体类集合的排序.
 
如我需要生成设备类型实体类集合的树状结构时候, 代码如下:

 

 

 

 

 


效果图如下
树状列表效果图.jpg

 

 

 

 

 

 

 

 

 

 

 

原创粉丝点击