当前位置: 首页 > news >正文

东莞大朗网站建设/qq排名优化网站

东莞大朗网站建设,qq排名优化网站,在58做网站推广有效果吗,赣州做网站的公司接到任务 进行一个菜单去重排序的功能 还是比较有意思的 背景:一个用户 存在 多个角色 一个角色分别有对应的菜单 所以要进行合并 去重 排序处理 并且菜单拥有二级甚至三级菜单 先定义一个Menu类 并且重写它的hashcode和equals package com.sitech.smartcity.c…

接到任务 进行一个菜单去重排序的功能 还是比较有意思的

背景:一个用户 存在 多个角色  一个角色分别有对应的菜单  所以要进行合并 去重 排序处理 并且菜单拥有二级甚至三级菜单

先定义一个Menu类  并且重写它的hashcode和equals

package com.sitech.smartcity.common.entity;import java.util.List;public class Menu {private String menuName;private String url;private List<Menu> menus;private String openType;//0:iframe嵌套  1: load加载 ;2 :window.location打开新界面private String logourl;private String code;//app业务编码private String classCode;//分类编码private String appid;private Integer classPriority;//排序字段public Integer getClassPriority() {return classPriority;}public void setClassPriority(Integer classPriority) {this.classPriority = classPriority;}public String getMenuName() {return menuName;}public void setMenuName(String menuName) {this.menuName = menuName;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public List<Menu> getMenus() {return menus;}public void setMenus(List<Menu> menus) {this.menus = menus;}public String getOpenType() {return openType;}public void setOpenType(String openType) {this.openType = openType;}public String getLogourl() {return logourl;}public void setLogourl(String logourl) {this.logourl = logourl;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getClassCode() {return classCode;}public void setClassCode(String classCode) {this.classCode = classCode;}public String getAppid() {return appid;}public void setAppid(String appid) {this.appid = appid;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Menu menu = (Menu) o;if (menuName != null ? !menuName.equals(menu.menuName) : menu.menuName != null) return false;if (url != null ? !url.equals(menu.url) : menu.url != null) return false;if (openType != null ? !openType.equals(menu.openType) : menu.openType != null) return false;if (code != null ? !code.equals(menu.code) : menu.code != null) return false;if (classCode != null ? !classCode.equals(menu.classCode) : menu.classCode != null) return false;if (appid != null ? !appid.equals(menu.appid) : menu.appid != null) return false;return classPriority != null ? classPriority.equals(menu.classPriority) : menu.classPriority == null;}@Overridepublic int hashCode() {int result = menuName != null ? menuName.hashCode() : 0;result = 31 * result + (url != null ? url.hashCode() : 0);result = 31 * result + (menus != null ? menus.hashCode() : 0);result = 31 * result + (openType != null ? openType.hashCode() : 0);result = 31 * result + (logourl != null ? logourl.hashCode() : 0);result = 31 * result + (code != null ? code.hashCode() : 0);result = 31 * result + (classCode != null ? classCode.hashCode() : 0);result = 31 * result + (appid != null ? appid.hashCode() : 0);result = 31 * result + (classPriority != null ? classPriority.hashCode() : 0);return result;}
}

然后 写几个 方法 用来合并 去重 排序的方法

//清除重复数据 利用set集合的 无重复特点 
public static List removeDuplicate(List list) {HashSet h = new HashSet(list);list.clear();list.addAll(h);return list;
}//根据排序字段进行排序
public static List compareList(List<Menu> list){Collections.sort(list, new Comparator<Menu>() {@Overridepublic int compare(Menu m1,Menu m2) {if (m1.getClassPriority() > m2.getClassPriority()) {return 1;}if (m1.getClassPriority() == m2.getClassPriority()) {return 0;}return -1;}});return list;
}//递归  合并  去重
public static void trecursive(List<Menu> list){try {for(Iterator<Menu> oneIter = list.iterator(); oneIter.hasNext();){Menu one = oneIter.next();for(Iterator<Menu> twoIter = list.iterator(); twoIter.hasNext();){Menu two = twoIter.next();//classcode为菜单的唯一标识  此处使用刚才重写的equals比较两个Menu对象也可if(one.getClassCode()!=null&&one.getClassCode().equals(two.getClassCode())){//如果进入 说明存在两个相同菜单  子菜单为空的情况  填充菜单  再去重if (one.getMenus() == null && two.getMenus() != null) {one.setMenus(two.getMenus());}if (two.getMenus() == null && one.getMenus() != null) {two.setMenus(one.getMenus());}if (two.getMenus() == null && one.getMenus() == null) {continue;}//否则合并  去重被合并菜单one.getMenus().addAll(two.getMenus());two.setMenus(one.getMenus());removeDuplicate(one.getMenus());compareList(one.getMenus());//递归trecursive(one.getMenus());}}}}catch (Exception e){e.printStackTrace();}
}

 

 

 

 

 

 

 

 

http://www.lbrq.cn/news/1294885.html

相关文章:

  • 揭阳网站推广教程/google关键词挖掘工具
  • 域名备案要多久/郑州seo外包顾问
  • 公司信息网站建设目标/网站检测中心
  • 东莞模板网站/怎么开网店新手入门
  • 登封免费网站建设/营业推广策划
  • wordpress图纸管理网站/天津百度爱采购
  • 网站涉及敏感视频等该怎么做/百度账号购买网站
  • 自己怎么1做网站/怎么快速优化关键词排名
  • 建社个人网站/windows优化大师是什么软件
  • 企业网络营销策划方案设计的例子/seo和sem的区别是什么?
  • 婚礼网站建设/不能搜的超级恶心的关键词
  • 绛县网站建设/免费seo搜索优化
  • 做ppt常用的网站有哪些/百度快速收录开通
  • 永州市开发建设投资有限公司网站/最佳磁力引擎吧
  • 用cs6做普通网站/网站建设的基本
  • wordpress扩展性/爱站seo工具包官网
  • wordpress微信免签支付接口/西安网站seo排名优化
  • jsp网站建设/百度新闻发布
  • 做改网站/企业网站制作需要多少钱
  • 网站制作案例市场/网站查询域名ip
  • 做网站包头/石家庄seo扣费
  • 个人网站创建/企业文化理念
  • 网站开发定位/黑马it培训班出来现状
  • 国内最新重大新闻/指定关键词seo报价
  • 教育中介公司网站建设费用/网络营销的培训课程
  • 怎么让学生在网站上做问卷调查/百度收录入口在哪里
  • 高端网网站建设/网站推广营销运营方式
  • 求职网站开发多少钱/长春百度推广公司
  • 电商摄影/seo产品优化免费软件
  • crazyuncle WordPress/某网站seo诊断分析
  • 在C++里如何避免栈内存溢出
  • 基于深度学习的目标检测:从基础到实践
  • 力扣面试150题--搜索插入位置
  • COGNEX康耐视IS5403-01智能相机加Navitar 18R00 LR1010WM52镜头
  • 周末总结(2024/07/19)
  • 深入排查:编译环境(JDK)与运行环境(JRE/JDK)不一致时的常见 Java 错误及解决方案