java如何根据list以及根节点id获取树形展示数据?
来源:互联网 发布:windows 搭建owncloud 编辑:程序博客网 时间:2024/06/10 09:50
话不多说,键代码:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.cdkj.sys.domain.vo.DeptTreeVo;
public class DeptTreeConUtil {
/**
*
* @Title: queryItemListByTmpl
* @Description: 根据list以及根节点id获取树形展示数据
* @param itemList
* @param pkId
* @return List<Map<String,Object>> 返回类型
* @throws
*/
public static List<Map<String, Object>> queryItemListByTmpl(
List<DeptTreeVo> itemList, Integer pkId) {
try {
Map<String, Object> map = new HashMap<String, Object>();
List<Map<String, Object>> rusult = new ArrayList<Map<String, Object>>();
for (DeptTreeVo item : itemList) {
if (item.getPkId().equals(pkId)) {
// 设置根节点
map = new HashMap<String, Object>();
// 设置根节点属性
map.put("id", item.getPkId());
map.put("superPk", item.getSuperPk());
map.put("text", item.getText());
map.put("expanded", "true");
// map.put("item", item);
// 设置子节点
getSonTree(map, itemList);
rusult.add(map);
break;
}
}
return rusult;
} catch (Exception e) {
e.printStackTrace();
// log.error(this.getClass().getName(), e);
}
return null;
}
/**
*
* @Title: getSonTree
* @Description: 递归获取所有的根节点
* @param map
* @param itemList
* @return Map<String,Object> 返回类型
* @throws
*/
private static Map<String, Object> getSonTree(Map<String, Object> map,
List<DeptTreeVo> itemList) {
List<Map<String, Object>> sonList = new ArrayList<Map<String, Object>>();
Map<String, Object> sonMap;
for (DeptTreeVo item : itemList) {
if (map.get("id").toString().equals(item.getSuperPk().toString())) {
sonMap = new HashMap<String, Object>();
// sonMap.put("id", item.getPkId());
// sonMap.put("text", item.getText());
// sonMap.put("state", "closed");
sonMap.put("id", item.getPkId());
sonMap.put("superPk", item.getSuperPk());
sonMap.put("text", item.getText());
sonMap.put("expanded", "true");
// sonMap.put("item", item);
sonList.add(sonMap);
getSonTree(sonMap, itemList);
}
}
map.put("children", sonList);
return map;
}
}
实例类:
import java.io.Serializable;
import java.util.List;
public class DeptTreeVo implements Serializable {
/**
* @Fields serialVersionUID : TODO
*/
private static final long serialVersionUID = 5205187054922851719L;
private Integer pkId;
private String jgbm;
private String text;
private String layer;
private String layerStr;
private Integer superPk;
private List<DeptTreeVo> children;
public Integer getPkId() {
return pkId;
}
public void setPkId(Integer pkId) {
this.pkId = pkId;
}
public String getJgbm() {
return jgbm;
}
public void setJgbm(String jgbm) {
this.jgbm = jgbm;
}
public List<DeptTreeVo> getChildren() {
return children;
}
public void setChildren(List<DeptTreeVo> children) {
this.children = children;
}
}
- java如何根据list以及根节点id获取树形展示数据?
- 树形结构,根据父子ID生成树形节点
- js如何根据id获取标签内的值,以及如何通过id赋值
- MySql如何根据输入的id获得树形结构的子节点列表:使用自连+SUBSTRING_INDEX函数
- jsTree 点击节点事件及根据 ID 获取节点方法
- Ajax获取数据动态树形节点实现
- java如何获取需要在页面树形展示的json数组
- java递归根据节点ID得到所有父节点名称
- 树形数据层次展示
- 树形数据展示
- java实现树形展示
- java后台业务数据树形化展示(使用easyUI)
- java根据url获取数据
- MySQL 存储过程实现 id-pid结构的树形数据展示
- 根据id获取bostype
- java 如何获取得到两个list中不同的数据
- MFC树形控件CTreeCtrl使用方法、遍历、SetCheck无效、根据名称获取节点、获取选中节点等问题
- 认识DOM文档的遍历指针以及如何获取根节点和body节点
- meta web移动端
- kepler架构GPU新特性--HyperQ
- PHP与F的最新安装配置
- Java面向对象6——继承中的构造方法
- solr学习记录1
- java如何根据list以及根节点id获取树形展示数据?
- SDUTACM 面向对象程序设计上机练习九(对象指针)
- PHP empty()函数说明
- ArrayList去重
- python测试字符串是否包含中文,大小写字符,数字等
- 未来,有关程序员的十个预言
- 恢复参数文件spfile
- eval()函数
- MySql常用命令及导入.sql文件