物件List集合,按物件的某一屬性排序
阿新 • • 發佈:2019-01-09
物件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());
}