java list转树形

//树形实体
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;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值