自然排序:java.lang.Comparable
定制排序:java.util.Comparator
重写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);
}
}
当元素的类型没实现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());
}
}
compareTo
方法实现排序的,而Comparator是通过重写compare
方法实现排序的;