@File
2019-11-27T08:51:26.000000Z
字数 1027
阅读 65
java
// 继承 Comparable
public class Test1 implements Comparable<Test1>{
private int order;
private String name;
public Test1(int order, String name) {
this.order = order;
this.name = name;
}
/**
* 重写 compareTo 的比较逻辑
* @param o 上一个比较对象
* return 0 代表等于
*/
@Override
public int compareTo(Test1 o) {
// 上一个对象值 - 当前对象值 = 大到小
return o.order - order;
}
}
Collections.sort()
实现排序
public static void main(String[] args) {
// 模拟需排序数据
ArrayList<Test1> list = new ArrayList<>();
list.add(new Test1(2,"222222"));
list.add(new Test1(5,"555555"));
list.add(new Test1(3,"333333"));
// 排序
Collections.sort(list);
System.out.println(list);
}
方式1:lambda定义规则
public static void main(String[] args) {
// 模拟需排序数据
ArrayList<Test1> list = new ArrayList<>();
list.add(new Test1(2,"222222"));
list.add(new Test1(5,"555555"));
list.add(new Test1(3,"333333"));
// 参数2 - 参数1 = 大到小
// 也可以用 方法2 取代lambda表达式
Collections.sort(list, (o1, o2) -> o2.getOrder() - o1.getOrder());
System.out.println(list);
}
方式2:通过实现Comparator
接口自定义规则类
class MyComparator implements Comparator<Test1> {
@Override
public int compare(Test1 o1, Test1 o2) {
return o2.getOrder() - o1.getOrder();
}
}