JAVA對象去重 和數組對象排序,java數組

來源:互聯網
上載者:User

JAVA對象去重 和數組對象排序,java數組

JAVA對象去重比較噁心的說

需求:我要做的是去重每個許可權的菜單,菜單表結構是 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();@Overridepublic 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>);

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.