对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; }}