java递归生成树

本文介绍了一种通过递归方法构建商品类型的树状结构的数据处理方式。具体实现了从数据库中获取商品类型,并将其组织成树形结构的过程,包括根节点的获取及子节点的递归加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public List<Tree>  getAllCommType(){
  List<Tree> treeList=new ArrayList<Tree>();
  //取到父节点id为0,只有一个
  List<Commodity_type> typeList=commType.getAllCommodityType();
  for(Commodity_type type :typeList){
   Tree tree=new Tree();
   tree.setId(type.getType_id()+"");
   tree.setPid(type.getParent_id());
   tree.setText(type.getName());
   List<Commodity_type> childList=commType.listChildren(type);
   if(childList.size()>0){
    tree.setState("close");
    tree.setChildren(getAllTreeList(childList));
   }
   treeList.add(tree);
  }
  
  return treeList;
 }
 


commType.getAllCommodityType()的查询语句如下:

select * from commodity_type where parent_id=0

commType.listChildren(type)的查询语句如下:

select * from commodity_type where parent_id=#{type_id}


 /**
  * 加载子树(递归加载子子...树)
  * @param subTreeList
  * @return
  */
 public List<Tree> getAllTreeList(List<Commodity_type> subTreeList) {
  List<Tree> treeList = new ArrayList<Tree>();
  for(Commodity_type type : subTreeList) {
   Tree tree = new Tree();
   tree.setId(type.getType_id()+"");
   tree.setPid(type.getParent_id());
   tree.setText(type.getName());
   List<Commodity_type> _subTreeList= commType.listChildren(type);
   if (_subTreeList.size() > 0) {
    tree.setState("closed");
    tree.setChildren(getAllTreeList(_subTreeList));
   }
   
   treeList.add(tree);
  }
  return treeList;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值