首先说一下自己的一些思考吧,最近边复习考试边学习有很多东西没有及时记录下来,今天考完试正好来回忆一下:
首先,自己对于Comparable接口作用的感想,最近学习了很多排序算法,发现其中很多排序算法都是用到了一个固定的API就是
你会发现他使用的次数最多然后我还有一个疑惑就是这个Comparable接口,第一次接触,很好奇他是干什么用的,通过查找资料发现,这个接口其实就是sort方法的本质,我们在使用sort方法然后点击进去以后查看源码就会发现这个
public final class String
implements Serializable, Comparable, CharSequence{
...
}
显而易见,sort也实现了这个接口,但是sort我们知道只是对于数组排序,但是这个Comparable接口却是一个泛型,所以说我们可以通过调用Comparable的接口,实现自己更多的功能。顺带介绍一下这个接口里面只有一个comparable.to,用于作比较并且返回0,-1,1三个值,但是如果是字符串的话就是返回字符串的长度差,这里我们可以选择通过查看源码的方式发现:
首先,写一个测试类
然后我们叫鼠标放到compareTo后点击ctrl同时左击鼠标进入这个接口:
然后ctrl+f查找compareTo记得T要大写
然后我们就可以显而易见的看懂这个方法,然后我们测一下字符串:
String str1 = "Strings";
String str2 = "Strings";
String str3 = "Strings123";
int result = str1.compareTo( str2 );
System.out.println(result);
result = str2.compareTo( str3 );
System.out.println(result);
result = str3.compareTo( str1 );
System.out.println(result);