java list转树形
2015-09-30 10:38
489 查看
//树形实体 public class ExtTreeEntity { private String id; private String parentId;//父节点 private String text;//树形显示的文本 private boolean leaf;//是否叶子节点 private List<ExtTreeEntity> children; //TOTO getter/setter }
List<Entity> list = getAllEntity();//从数据库查询所有数据 ExtTreeEntity treeObj = new ExtTreeEntity(); treeObj.setId("0"); treeObj.setParentId("-1"); treeObj.setText("根节点"); List<ExtTreeEntity> extTreeEntitys = new ArrayList<ExtTreeEntity>(); ExtTreeEntity obj = new ExtTreeEntity(); for (Entity entity: list) { if (entity.getPid() == 0) { obj = new ExtTreeEntity(); obj.setId(entity.getId() + ""); obj.setParentId(entity.getPid() + ""); obj.setText(entity.getName()); extTreeEntitys.add(obj); } } treeObj.setChildren(extTreeEntitys); treeObj = recursiveTree(list,treeObj);
public ExtTreeEntity recursiveTree(List<Entity> list,ExtTreeEntity treeObj) { for (ExtTreeEntity extTreeEntity : treeObj.getChildren()) { String id = extTreeEntity.getId(); List<ExtTreeEntity> children = new ArrayList<ExtTreeEntity>(); for (Entity entity : list) { String parentId = entity.getPid() + ""; if (id.equals(parentId)) { ExtTreeEntity obj = new ExtTreeEntity(); obj.setId(entity.getId() + ""); obj.setParentId(entity.getPid() + ""); obj.setText(entity.getName()); obj.setLeaf(false); children.add(obj); } } extTreeEntity.setChildren(children); if (extTreeEntity.getChildren().size()==0) { extTreeEntity.setLeaf(true);//叶子节点 } recursiveTree(list,extTreeEntity); } return treeObj; }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树
- [原创]java局域网聊天系统