读书人

对list的对象开展排序

发布时间: 2012-12-28 10:29:05 作者: rapoo

对list的对象进行排序
最近在用s2sh开放项目,权限问题,获取个人的菜单列表时,有时候菜单的顺序会乱;解决办法如下:
菜单对象继承:Comparator,并实现compare方法

package com.kingtop.tools.bean;import java.util.ArrayList;import java.util.Comparator;import java.util.Date;import java.util.HashSet;import java.util.List;import java.util.Set;public class Menu implements java.io.Serializable,Comparator{private  Integer  id;private  String menuName;//显示名称private  Menu parentMenu;//父id,如果为顶级菜单则为0private  String url;//链接urlprivate  Integer  dept;//层次private Date createTime;//创建时间private String orders ;//排序private Set<Role> roles=new HashSet(0);//菜单与角色关系private List<Menu> childList = new ArrayList<Menu>();//子菜单public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getMenuName() {return menuName;}public void setMenuName(String menuName) {this.menuName = menuName;} /** * @return Menu parentMenu */public Menu getParentMenu() {return parentMenu;}/** * @param Menu parentMenu */public void setParentMenu(Menu parentMenu) {this.parentMenu = parentMenu;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public Integer getDept() {return dept;}public void setDept(Integer dept) {this.dept = dept;}public Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public String getOrders() {return orders;}public void setOrders(String orders) {this.orders = orders;}public Set<Role> getRoles() {return roles;}public void setRoles(Set<Role> roles) {this.roles = roles;}public List<Menu> getChildList() {return childList;}public void setChildList(List<Menu> childList) {this.childList = childList;}@Overridepublic int compare(Object o1, Object o2) {// TODO Auto-generated method stubMenu m1 = (Menu)o1;Menu m2 = (Menu)o2;int diff = m1.getOrders().compareTo(m2.getOrders()); if (diff > 0)     return 1;   else if (diff == 0)    return 0;   else  return -1;   }}


在获取一个List<Menu> lm = role.getMenus();

Menu me = new Menu();//只用new一下就可以了

进行排序:
Collections.sort(userMap, me); 就ok了。 1 楼 jarry-li 2011-08-17 来看你了刘总

读书人网 >编程

热点推荐