![cbd7cc333c02f1fcff2e026dcee68c9e.png](https://img-blog.csdnimg.cn/img_convert/cbd7cc333c02f1fcff2e026dcee68c9e.png)
说明:本文内容参考sun10367博主的内容https://www.cnblogs.com/sun10367/p/13579734.html,若有侵权,联系删除
java中实现对象排序的方式主要有两种:Comparator接口与Comparable接口
1.内部实现:Comparable
- 排序对象通过实现 Comparable 接口的抽象方法:int compareTo(Object o),完成对象排序的操作
- 实现 Comparable 的类必须实现 compareTo(Object o) 方法,两个对象即通过 compareTo(Object o) 方法的返回值来比较大小。
- 如果当前对象 this 大于形参对象 o ,则返回正整数,
- 如果当前对象 this 小于形参对象 o ,则返回负整数,
- 如果当前对象 this 等于形参对象 o ,则返回零。
- 实现 Comparable 接口的类的对象数组(和有序集合)可以通过 Arrays.sort(和 Collections.sort )进行自动排序。
- Comparable的典型实现:(默认都是从小到大排序)
案例:String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,以String源码为例,进行讲解
- String继承Comparable 接口
![15784ff74aeb151fef6c791fa8042562.png](https://img-blog.csdnimg.cn/img_convert/15784ff74aeb151fef6c791fa8042562.png)
- 重写compareTo方法:该方法实现了String的升序排序
![852fd17564f38a8549196e14d1de772a.png](https://img-blog.csdnimg.cn/img_convert/852fd17564f38a8549196e14d1de772a.png)
- 测试结果
String[] testArray = new String[3];
testArray[0]