您的位置:首页 > 编程语言 > Java开发

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 tree