您的位置:首页 > 编程语言 > Java开发

对象List集合,按对象的某一属性排序

2018-02-25 10:49 477 查看

对象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());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java List 对象List排序