JAVA对象去重 和数组对象排序
2015-06-18 10:37
501 查看
JAVA对象去重比较恶心的说
需求:我要做的是去重每个权限的菜单,菜单表结构是 ID RoleID MenuID 获取的菜单表 应该是MenuID不能重复的
所以写菜单表的实体类,重写equals hashCode方法,让着2个作比较,下面代码中MenuID为主要比较的字段
这样给实体类重写2个方法之后 用set 自动去重
数组对象排序 实现Comparable接口 重写compareTo方法 给出需要排序的字段
使用
Collections.sort(List<RoleMenu>);
需求:我要做的是去重每个权限的菜单,菜单表结构是 ID RoleID MenuID 获取的菜单表 应该是MenuID不能重复的
所以写菜单表的实体类,重写equals hashCode方法,让着2个作比较,下面代码中MenuID为主要比较的字段
package com.attendance.mvc.model; import com.jfinal.plugin.activerecord.Model; public class RoleMenu extends Model<RoleMenu> { // 类版本,系统自动生成 private static final long serialVersionUID = 1L;//这是框架自带的东西 自动映射表字段,也就相当于get set自带了
public final static RoleMenu me = new RoleMenu(); @Override public boolean equals(Object obj) { RoleMenu roleMenu = (RoleMenu) obj; return this.getStr("MenuID").equals(roleMenu.getStr("MenuID")); } @Override public int hashCode() { return this.getStr("MenuID").hashCode(); } }
这样给实体类重写2个方法之后 用set 自动去重
//获取权限菜单 public List<RoleMenu> GetRoleMenuList() { List<UserRole> userRoleList = this.GetUserRoleList(); IRoleMenu roleMenuBusiness = BusinessFactory.CreateRoleMenuBusiness(); List<RoleMenu> roleMenuList=new ArrayList<RoleMenu>(); Set<RoleMenu> set=new HashSet<RoleMenu>(); for(UserRole userRole:userRoleList) { List<RoleMenu> rmList = roleMenuBusiness.GetListByRoleID(userRole.getStr("RoleID")); set.addAll(rmList); } roleMenuList.addAll(set); return roleMenuList; }
数组对象排序 实现Comparable接口 重写compareTo方法 给出需要排序的字段
public class RoleMenu extends Model<RoleMenu> implements Comparable<RoleMenu> { // 类版本,系统自动生成 private static final long serialVersionUID = 1L; public final static RoleMenu me = new RoleMenu(); @Override public int compareTo(RoleMenu o) { return this.getDouble("Order").compareTo(o.getDouble("Order")); } }
使用
Collections.sort(List<RoleMenu>);
相关文章推荐
- 解决Exception in thread “main" java.lang.UnsupportedClassVersionError
- Java 异常处理的误区和经验总结(精)
- 简单音乐播放器----java (美。。。。)
- Java中如何进行BASE64编码和解码
- mac eclipse javaHL not available解决方案(brew 安装并解决被墙问题)
- JAVA程序猿和HR的对话,你了解Hybris么
- Java生成缩略图之Thumbnailator
- 基于spring mvc 移动终端后台开发
- Struts2 项目报错 No result defined for action com.xxx.xxAction and result input
- Pig Java Udf 简介
- java字符串
- Eclipse下Android项目的重命名非Ant
- java几种常用设计模式简单示例
- java几种常用设计模式简单示例
- java JFrame关闭窗口最大化功能
- 兼容各浏览器的文件下载时中文名称乱码的解决方案
- 正则表达式中量词贪婪型和勉强型的讨论(Java语言描述)
- 【j2ee spring】36、巴巴运动网的产品品牌图片
- java自定义拦截器用法实例
- java.net.SocketException: Connection reset 解决方法