List生成下拉列表树

 

大家如果感兴趣可以放问这个网址

http://www.ybloy.com/post/2009/07/16/Liste98092e5bd92e7949fe68890e4b88be68b89e58897e8a1a8e6a091.aspx

里面有实现过后的效果和代码的注释。

ContractedBlock.gif ExpandedBlockStart.gif javaCode
 1    //=================begin-取得类型树=================
 2ExpandedBlockStart.gifContractedBlock.gif    private List<SysAuditotypecategory> cTreeList(List<SysAuditotypecategory> aList){
 3        List<SysAuditotypecategory> returnList = new ArrayList<SysAuditotypecategory>();
 4        List<SysAuditotypecategory> topList = new ArrayList<SysAuditotypecategory>();
 5        List<SysAuditotypecategory> tempList = new ArrayList<SysAuditotypecategory>();
 6
 7ExpandedSubBlockStart.gifContractedSubBlock.gif        for (SysAuditotypecategory sacty : aList) {
 8ExpandedSubBlockStart.gifContractedSubBlock.gif            if(sacty.getParent()==null){
 9                topList.add(sacty);
10ExpandedSubBlockStart.gifContractedSubBlock.gif            }
else {
11                tempList.add(sacty);
12            }

13        }

14
15ExpandedSubBlockStart.gifContractedSubBlock.gif        for (int i=0;i<topList.size();i++{
16                SysAuditotypecategory sacty = topList.get(i);
17                returnList.add(cTreeNode(sacty, "", (i+1<topList.size())));
18                returnList.addAll(cTreeNodeList(tempList,sacty.getId(),(i+1<topList.size())?"":" "));
19            }

20        return returnList;
21    }

22
23ExpandedBlockStart.gifContractedBlock.gif    private List<SysAuditotypecategory> cTreeNodeList(List<SysAuditotypecategory> inList,Long parentid,String headString){
24        List<SysAuditotypecategory> tempList1 = new ArrayList<SysAuditotypecategory>();
25        List<SysAuditotypecategory> tempList2 = new ArrayList<SysAuditotypecategory>();
26        List<SysAuditotypecategory> returnList = new ArrayList<SysAuditotypecategory>();
27
28ExpandedSubBlockStart.gifContractedSubBlock.gif        for(int i=0;i<inList.size();i++){
29            SysAuditotypecategory sacty = inList.get(i);
30ExpandedSubBlockStart.gifContractedSubBlock.gif            if(sacty.getParent().getId() == parentid){
31                tempList1.add(sacty);
32ExpandedSubBlockStart.gifContractedSubBlock.gif            }
else {
33                tempList2.add(sacty);
34            }

35        }

36
37ExpandedSubBlockStart.gifContractedSubBlock.gif        if(tempList1.size()>0){
38ExpandedSubBlockStart.gifContractedSubBlock.gif            for(int i=0;i<tempList1.size();i++){
39                SysAuditotypecategory sacty1 = tempList1.get(i);
40                returnList.add(cTreeNode(sacty1, headString, (i+1<tempList1.size())));
41
42ExpandedSubBlockStart.gifContractedSubBlock.gif                if(tempList2.size()>0){
43                    returnList.addAll(cTreeNodeList(tempList2,sacty1.getId(),headString+((i+1<tempList1.size())?"":" ")));
44                }

45            }

46        }

47
48        return returnList;
49    }

50
51ExpandedBlockStart.gifContractedBlock.gif    private SysAuditotypecategory cTreeNode(SysAuditotypecategory satcy,String headString,boolean havenext) {
52        satcy.setCategoryname(headString.concat((havenext?"":""))+satcy.getCategoryname());
53        return satcy;
54    }

转载于:https://www.cnblogs.com/ConjurerYang/archive/2009/05/18/1459234.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值