归并排序,Comparable<E>和comparator<E> ,泛型类

本文详细介绍了归并排序的实现过程,并探讨了Java中Comparable接口和Comparator接口的使用,包括如何让类实现Comparable接口以进行自然顺序比较,以及如何创建Comparator实例进行自定义比较。同时,解释了泛型类的概念、类型擦除以及泛型的边界问题,最后提到了泛型在实际应用中的通配符使用和上下界设定。
摘要由CSDN通过智能技术生成

归并排序
待排序区区间[low,high)
public static void mergeSort(int[] array, int low,int high){
    1.先求待排序区间的下标
    2.对左右两个小区间进行归并排序,直到小区间长度<=1
    3.执行合并两个有序数组的操作
}
Person[] people;
排序 people;
没办法直接做,原因是Person类型的引用无法和另一个Person类型的引用类型做大小比较

equals方法可以做相等比较,需要重写这个方法   相等性的比较

引入一个接口 Comparable<E>
1.让Person实现 该接口
               comparable<Person>  对象的自然顺序(nature order)
       要和谁比较就填啥,也可以写<String>
2.覆写compareTo(Person o)  表示对象可以进行比较
  该方法返回值<0   this 比较小
  该方法返回值=0   相等
  该方法返回值>0   o比较小

引入另一个接口comparator<E>  比较器

 

不引入第三方对象用Comprable
引入第三方对象用Comparator
class Card implements Comprable<Card>{            Card c1=...;
    @Override                                                           Card c2=...;   
    public int compareTo(Card o){

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值