7、比较器

自然排序:java.lang.Comparable

定制排序:java.util.Comparator

Comparable接口

重写compareTo(obj)的规则:

使用方法

//必须在需要排序的类中,实现Comparable接口,并且重写方法compareTo
public class Goods implements Comparable<Goods>{
    private double goodsPrice;
 	@Override
    public int compareTo(Goods o) {
        return Double.compare(this.goodsPrice,o.goodsPrice);
    }
}

Comparator接口

当元素的类型没实现java.lang.Comparable接口而又不方便修改代码,或者实现了java.lang.Comparable接口的排序规则不适合当前的操作,那么可以考虑使用 Comparator 的对象来排序

重写compare(Object o1,Object o2)规则:

使用方法

//在新的类里面,进行Comparator接口的实现并且重写compare方法
public class GoodsesIdUp implements Comparator<Goods> {
    @Override
    public int compare(Goods o1, Goods o2) {
        return Double.compare(o1.getGoodsPrice(),o2.getGoodsPrice());
    }
}

两种排序方式对比