大家好,关于菜鸟源码分享网站很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于菜鸟教程网站源码的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
不巧的是,今天复习TreeSet的时候呢,了解到TreeSet的底层会调用compareTo(To)的方法来比较元素之间的大小,且分为自然排序和定制排序。于是简单的研究了一下在实现compareTo(Objectobj)和compare(To1,To2);
废话不多说,现在先来看两个例子,再看源码,众所周知的原因,我把代码的格式调了一下,但是不影响观看。
ComparatorTest的例子
ComparableTest
首先来看一下,Comparable接口,它是一个函数式接口,里面只有一个方法。如下:
publicintcompareTo(To);
Arrays.sort()源码解析
下面再来看一下Comparator.同样也是一个函数式接口。
TreeSet中规定:如果试图把一个对象加入到TreeSet中,则该对象的类必须实现Comparable接口,否则将会抛出异常。
因为我们在添加元素时,就会调用该对象的compareTo(To)方法与集合中其他元素进行比较。
上图中有个点没说完,两次调用sort的参数是不一样的。进入sort方法。如下所示:
多说一句,用Arrays.sort(list)时,出现的是下面的方法,注意行号:
文章到此结束,如果本次分享的菜鸟源码分享网站和菜鸟教程网站源码的问题解决了您的问题,那么我们由衷的感到高兴!
