@File
2019-11-27T08:51:26.000000Z
字数 1027
阅读 118
java
// 继承 Comparablepublic 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 代表等于*/@Overridepublic 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> {@Overridepublic int compare(Test1 o1, Test1 o2) {return o2.getOrder() - o1.getOrder();}}
