二、将List<对象>按对象的两个属性值排序
代码如下(示例):
@Data
public static class ListTest implements Comparable<ListTest>{
private Integer level;
private Date time;
public ListTest(Integer level, Date time) {
super();
this.level = level;
this.time = time;
}
public ListTest() {
}
@Override
public int compareTo(ListTest o) {
// TODO Auto-generated method stub
if(this.getLevel()>o.getLevel())
{
return 1;
}else if(this.getLevel()<o.getLevel()){
return -1;
}else{
if(this.getTime().after(o.getTime())){
return -1;
}else{
return 1;
}
}
}
}
public static void main(String[] args) throws ParseException {
ArrayList<ListTest> listTests = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ListTest listTest1 = new ListTest();
listTest1.setLevel(1);
listTest1.setTime(new Date());
listTests.add(listTest1);
ListTest listTest2 = new ListTest();
listTest2.setLevel(2);
Calendar cal=Calendar.getInstance();
cal.add(Calendar.DATE,-1);
Date d=cal.getTime();
listTest2.setTime(d);
listTests.add(listTest2);
ListTest listTest3 = new ListTest();
listTest3.setLevel(1);
listTest3.setTime(d);
listTests.add(listTest3);
// listTests.add(new ListTest(1,simpleDateFormat.parse("2022-08-11 14:42:32")));
// listTests.add(new ListTest(2,simpleDateFormat.parse("2018-07-28 14:42:32")));
// listTests.add(new ListTest(1,simpleDateFormat.parse("2018-07-28 14:42:32")));
System.out.println("listTests1----->"+listTests);
//按照level升序,time降序
Collections.sort(listTests);
System.out.println("listTests2----->"+listTests);
}