一、自定义类型比较大些
1、类实现 java.lang.Comparable +重写 compareTo方法。
这种方法的特点是:与类耦合在一起,单一的排序规则
2、比较业务类
java.util.Comparator +重写compare方法 。这种方法的特点是:解耦,满足不同的多样化的排序规则
3、只有使用了以上两种方法才能调用java提供的排序算法.
sort(List<T> list)
方法中的T必须实现java.lang.Comparable +重写 compareTo。因为,sort方法内部,会把T类型转化为Object类型,进行操作。当需要进行比较的时候,则会讲Object类型强制转化为Comparable类型,并调用compareTo方法。由于多肽的缘故,当进行比较的时候会调用你写好的比较规则。
sort(List<T> list, Comparator<? super T> c)
第二种比较方法,相对于第一种来说简单多了。Copparator会一直作为参数调用下去,当进行比较的时候会
调用 compare方法
二、冒泡排序
三、小技巧
1、 i-j之间有多少个数:j-i+1
2、i-j之间加了几次1 :j-i