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

private static List<SystemResource> convertToOrder(List<SystemResource> resources){// ParentId集合,取出所有的parentidList<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

zTree菜单的排序相关推荐

  1. Dajngo-Xadmin 修改菜单摆放排序

    问题: Xadmin 默认是读取了所有被注册到 xadmin 的模型生成对应的菜单!这个是没问题的 ,但是xadmin又对菜单做了 "通过菜单名称" 排序.英文状态下我们的排列至少 ...

  2. 关于在使用ztree中同级排序的疑问

    在最近开发项目中,使用ztree.js这个插件.但是在使用中碰到了一个问题: ztree在同级中的排序是乱的,及并不是按照0-9 a-z 的顺序进行排序,但是我对比了一下与同事写的代码,在定义的set ...

  3. jQuery easyUI--选项卡右键菜单

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>选项卡 ...

  4. jQuery easyUI--zTree属性菜单

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>树形菜 ...

  5. ztree和php结合实例,实例详解jQuery EasyUI结合zTree树形结构制作web页面

    JQuery EasyUI 结合 zTree树形结构制作web页面.easyui用起来比较简单,很好的封装了jquery的部分功能,使用起来更加方便,但是从1.2.3版本以后,商业用途是需要付费的,z ...

  6. php 可编辑菜单,菜单的添加编辑

    摘要: 上级菜单 菜单名称 排序 控制器 方法 菜单状态 保存 //加载layui的弹窗组件和form组件 layui.use(['layer','form'],function(){ var for ...

  7. Unity 编辑器扩展菜单

    Unity 编辑器扩展菜单 目录 Unity 编辑器扩展菜单 一.MenuItem 特性 菜单栏扩展 1.创建多级菜单 2.创建可使用快捷键的菜单项 3.创建可被勾选的菜单项 4.检查菜单是否使用 5 ...

  8. 计算机文件大小排序工具,如何对电脑文件夹进行排序

    我们在电脑中都是需要管理我们的文件夹的,那在电脑中有小伙伴保存的文件比较多以后对于管理文件夹的内容都是很重要的,那我们在电脑账怎么才能更好的管理排序功能管理文件的呢,对于这个问题的疑问今天小编就来跟大 ...

  9. excel数据透视表数据排序及excel表格转成word表

    目录 1.将excel表格粘贴到word中:(直接粘贴会出现各种不服!) 2.对透视表数据排序: 3.更改透视表数据源: 4.数据透视表的无效行标签如何清除(是否保留从数据源部分中删除的项目) 5.改 ...

最新文章

  1. [转][Timer学习]wall time和monotonic time
  2. 交叉编译openwrt php,构建 openwrt 交叉编译工具链
  3. Apache以及PHP的默认编码问题解决(详解)
  4. react 项目总结
  5. Hemberg-lab单细胞转录组数据分析(六)
  6. 前端笔记-thymeleaf发送数据给JavaScript变量(普通变量和List)
  7. mysql++pc客户端_Mysql超详细安装配置+客户端连接
  8. Gateway与后端系统连接详细配置
  9. Sqlserver常用函数例子说明
  10. 利用Python构建时间序列模型解决实际问题的正确姿势
  11. 安装MySQL-python时发生错误:error: command 'gcc' failed with exit status 1
  12. xcode中遇到的英文名词(更新)
  13. 国际标准UTC时间转化北京时间
  14. 【Windows】bat | 服务 | bat作为服务 | bat转exe
  15. 斐讯k2刷breed总结
  16. 计算机控制系统编程语言有哪些,PLC编程语言有哪些种类
  17. 51单片机与AVR单片机
  18. 推荐几款优质 Mac 软件下载网站 - 从此告别软件荒
  19. 一个最简单的Delphi2010的PNG异形窗口方法
  20. php smtp发送邮件

热门文章

  1. Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到...
  2. KaleidoscopeGame
  3. Javascript获取url参数值
  4. js时断时续————动态参数传递
  5. 使用asp.net 2.0中的SqlBulkCopy类批量复制数据
  6. ubuntu12.04默认gcc4.6.3,如何升级到gcc4.8
  7. 设计模式总结 (4)结构型模式
  8. 【django】HttpResponse对象
  9. Fabric--启动网络手动
  10. c++对象长度之静态数据成员(3)