黑马程序员技术交流社区
标题:
比较器
[打印本页]
作者:
四顾行者
时间:
2014-6-5 23:00
标题:
比较器
一个是实现Comparable接口,覆写compareTo()方法。一个是实现Comparator接口,覆写compare()方法。
那么什么情况下用前一种方式,什么情况下用后一种方式,什么情况下这两种都可以?
作者:
a110bc
时间:
2014-6-5 23:08
comparable是比较性,由被比较的对象类实现。
comparator是比较器,需要自定义一个比较器实现comparator接口。
作者:
阿苏勒
时间:
2014-6-6 00:24
实现comparable是具备了比较性,而自定义的比较器需要实现comparator
作者:
never615
时间:
2014-6-6 00:26
当元素自身不具备比较性,或者具备的比较性不是所需要的。
这时需要让容器自身具备比较性。
当两种排序都存在时,以比较器为主。
就像Student 类中写了一个compareTo方法,但是现在你想要另一种方式排序;
但改原有代码是不推荐的,我们只需要添加一个比较器实现新的排序规则,然后传给集合就好了;
当以后又需要另一种排序,就在写一个新的比较器,传给集合;
这样做提高的代码的扩展性。
作者:
四顾行者
时间:
2014-6-6 23:08
never615 发表于 2014-6-6 00:26
当元素自身不具备比较性,或者具备的比较性不是所需要的。
这时需要让容器自身具备比较性。
当两种排序都存 ...
感谢层主,你说的很详细,给你32个赞
作者:
kongyan4696
时间:
2014-6-7 08:41
comparable 相当于自己来比较。
comparator 相当于让别人来帮忙比。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2