package struts.test.action;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Menu {
private Integer id;
private String name;
private Integer orderValue;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getOrderValue() {
return orderValue;
}
public void setOrderValue(Integer orderValue) {
this.orderValue = orderValue;
}
public static List<Menu> getChildren() {
List<Menu> menuList = new ArrayList();
Menu m1 = new Menu();
m1.setId(1);
m1.setName("李白");
m1.setOrderValue(3);
Menu m2 = new Menu();
m2.setId(2);
m2.setName("杜甫");
m2.setOrderValue(2);
Menu m3 = new Menu();
m3.setId(3);
m3.setName("曹操");
m3.setOrderValue(1);
menuList.add(m1);
menuList.add(m2);
menuList.add(m3);
Collections.sort(menuList, new MenuComparator());
return menuList;
}
public static void main(String[] args) {
List<Menu> menus = getChildren();
for(Menu menu:menus){
System.out.println("id = " + menu.getId() + ";name = " + menu.getName() + ";orderValue = " + menu.getOrderValue());
}
}
}
class MenuComparator implements Comparator<Menu> {
@Override
public int compare(Menu o1, Menu o2) {
if(o1.getOrderValue() > o2.getOrderValue()){
return 1;
}else if(o1.getOrderValue().intValue() == o2.getOrderValue().intValue()){
if(o1.getId()>o2.getId())
return 1;
else if(o1.getId().intValue() == o2.getOrderValue().intValue())
return 0;
else
return -1;
}
else{
return -1;
}
}
}
根据orderValue值先排序,后根据ID值排序
输出结果: