对象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());
}