1. 程式人生 > >物件List集合,按物件的某一屬性排序

物件List集合,按物件的某一屬性排序

物件List集合排序

核心程式碼塊


   Collections.sort(eList , new Comparator<E>() {
       public int compare(E arg0, E arg1) {
           int hits0 = arg0.getNum();
           int hits1 = arg1.getNum();
           if (hits1 > hits0) {
               return -1;
           } else if (hits1 == hits0) {
               return
0; } else { return 1; } } }); 其中eList是我們需要進行排序的List集合,即List<E> eList = new ArrayList<E>(); 在E這個物件中,有num這個屬性,即e.getNum()有效 注:num只是舉例,並非E這個物件中必須要有特定的num屬性, 可為任意屬性 如 type , grade ,name ...都可 如果hits1 > hits0 時,return -1;即為正序排序 如果hits1 > hits0 時,return
1; 即為倒序排序


public class Equip {

    private String name;

    private String type;

    private int grade;

    private boolean exist;
    //省略get set 方法
}
List<Equip> equipList = new ArrayList<>();
// equipList中新增Equip物件
// 按等級順序排序
Collections.sort(equipList, new Comparator<Equip>() {
    public
int compare(Equip arg0, Equip arg1) { int hits0 = arg0.getGrade(); int hits1 = arg1.getGrade(); if (hits1 > hits0) { return -1; } else if (hits1 == hits0) { return 0; } else { return 1; } } }); for (Equip equip : equipList) { System.out.println( equip.getGrade() + " " + EnumHelper.translate(EquipKindEnum.class, equip.getType()).getText() + " " + equip.getName()); }