java用数据库获取的list数据构造hashmap树结构

 

这个例子通过三层循环构建了三级树结构,结合使用了list和hashmap个自特有的方法属性。

public HashMap getFlowTreeList()
 {
  
  List  listOpTp = getSqlSession().selectList("com.cons.pmconf.FlowChart.getOpType");
  HashMap mapReturn = new HashMap();
  //listOpTp
  List newlistOpTp=new ArrayList();
  
  for(int i=0;i<listOpTp.size();i++)
  {
   
   HashMap hm=(HashMap)listOpTp.get(i);  
   int code=Integer.parseInt(hm.get("OPTYPECODE").toString());
   flowChart.setOpTypeCode(code);   
   List flow=getSqlSession().selectList("com.cons.pmconf.FlowChart.getFlowChart",flowChart);
   List newflow=new ArrayList();
   if(flow.size()>0)
   {
    for(int j=0;j<flow.size();j++)
    {
     HashMap fl=(HashMap)flow.get(j);
     int flnum=Integer.parseInt(fl.get("FLOWNUM").toString());
     flowChart.setFlowNum(flnum);
     List vision=getSqlSession().selectList("com.cons.pmconf.FlowChart.getFlowRevision",flowChart);
     List newvision=new ArrayList();
     for(int k=0;k<vision.size();k++)
     {
      HashMap vn=(HashMap)vision.get(k);//用HASHMAP存储一条记录,hashmap能够继续添加前台所需要的字段(键值对)
      String vnnum = vn.get("FLOWREVISION").toString();
      String vnname="版本"+vnnum;
      vn.put("TREETYPE", "REV");
      vn.put("VNNAME", vnname);
      newvision.add(vn);
     }
     if(fl.get("FLOWTYPE")=="1")
      fl.put("TREETYPE", "FC");
     else if(fl.get("FLOWTYPE")=="40")
      fl.put("TREETYPE", "CHILDFLOW");
     else
      fl.put("TREETYPE", "ASSISTFLOW");
     fl.put("children", newvision);
     newflow.add(fl);
    }
    
   }
   hm.put("TREETYPE", "FT");
   hm.put("children", newflow);
   
   newlistOpTp.add(hm);
  }
  mapReturn.put("TREELIST", newlistOpTp);
  
  return mapReturn;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值