(一)Comparable<>接口
要排序的对象类实现Comparable<>接口,重写其compareTo()方法,方法体中实现对象的比较大小规则
//参数-字段=降序,字段-参数=升序。//其实这个方法是升序还是降序,看返回值是正数还是负数,后面的比较方法一样的@Overridepublic int compareTo(TopBook o) {return o.num-num;}
List<TopBook> allTopBooks=new LinkedList<>();//实现排序Collections.sort(allTopBooks);
(二)Comparator
需编写匿名内部类,先new一个Comparator接口的比较器对象c,同时实现compare()其方法;
然后将比较器对象c传给Collections.sort()方法的参数列表中,实现排序功能
List<TopBook> list =new ArrayList<>();//o1-o2升序,o2-o1降序Collections.sort(list, new Comparator<TopBook>() {public int compare(TopBook o1, TopBook o2) {return o1.getNum()-o2.getNum();}});
Collections.sort(list, (o1, o2) -> o1.getNum()-o2.getNum());
或者
list.sort((o1, o2) -> o2.getNum()-o1.getNum());
