zTree菜单的排序

zTree菜单的排序,查询出来为所有的菜单项
循环遍历取的时候,为了保证它的顺序,所以先做个排序
只要保证相同父节点下的,所有的子节点,都是有序的,取的时候,从根节点开始得到的菜单就是有序的

private static List<SystemResource> convertToOrder(List<SystemResource> resources){
    // ParentId集合,取出所有的parentid
    List<String> setParentId=new ArrayList<>();
    for(int i=0;i<resources.size();i++){
        String ParentId=resources.get(i).getParentId().toString();
        if(!setParentId.contains(ParentId)){
            setParentId.add(ParentId);
        }
    }
    // ParentId集合,存放到Map中
    Map<String, List<SystemResource>> arraySource=new HashMap<String, List<SystemResource>>();
    for(int i=0;i<setParentId.size();i++){
        List <SystemResource> systemResourceList=new ArrayList<>();
        arraySource.put(setParentId.get(i).toString(),systemResourceList);
    }
    // 根据Key,添加list,parentid为key,list为所有的子节点
    for(int i=0;i<resources.size();i++){
        if(arraySource.containsKey(resources.get(i).getParentId().toString())){
            arraySource.get(resources.get(i).getParentId().toString()).add(resources.get(i));
        }
    }
    // 根据key,获取list排序
    List<SystemResource> resourceList=new ArrayList<>();
    for(int i=0;i<setParentId.size();i++){
        List<SystemResource> systemResourceList=new ArrayList<>();
        if (arraySource.get(setParentId.get(i)).size()>0){
            systemResourceList=orderSystemResourceList(arraySource.get(setParentId.get(i)));
        }
        resourceList.addAll(systemResourceList);
    }
    return resourceList;
}

// list排序,同一个parentID下面的,所有子节点排序
private static List<SystemResource> orderSystemResourceList(List<SystemResource> systemResourceList){
    // Weight集合,放到Map中,key为子节点的权重,value为子节点
    Map<String,SystemResource> resourceMap=new HashedMap();
    for(int i=0;i<systemResourceList.size();i++){
        SystemResource systemResource=new SystemResource();
        resourceMap.put(systemResourceList.get(i).getWeight().toString(),systemResourceList.get(i));
    }
    // Weight集合,权重集合
    int arrayInt[]=new int[systemResourceList.size()];
    for(int i=0;i<systemResourceList.size();i++){
        arrayInt[i]=systemResourceList.get(i).getWeight();
    }
    // Weight集合,权重排序
    for (int i = 0; i < arrayInt.length; i++) {
        for (int j = i+1; j < arrayInt.length; j++) {
            if (arrayInt[i] < arrayInt[j]) {
                int temp = arrayInt[i];
                arrayInt[i] = arrayInt[j];
                arrayInt[j] = temp;
            }
        }
    }
    // 根据有序的key,获取value子节点
    List<SystemResource> systemResourceListByWeight=new ArrayList<>();
    for (int i=0;i<arrayInt.length;i++){
        systemResourceListByWeight.add(resourceMap.get(String.valueOf(arrayInt[i])));
    }
    return systemResourceListByWeight;
}

上述代码,是用不到的
直接在查询的时候,排序即可
select * from SYS_RESOURCE ORDER BY PARENT_ID,WEIGHT

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值