黑马程序员技术交流社区

标题: 对于Compare,Compator,Compable,CompareTo这几个总是稍微的模糊,请问怎么区分呢? [打印本页]

作者: 坚持525    时间: 2014-10-7 19:42
标题: 对于Compare,Compator,Compable,CompareTo这几个总是稍微的模糊,请问怎么区分呢?
对于Compare,Compator比较器,Compable接口,和CompareTo这几个总是稍微的模糊,请问怎么区分呢?
作者: 水竹    时间: 2014-10-7 20:21
按照英文的意思来记吧:
首先Comparable是可比较的,它是一个形容词,就类似于“可序列化的”、“可复制的”等等,典型的接口的名字,一个类如果想要让其对象拥有比较性就实现它吧。
compareTo,和什么比较,它是Comparable接口中定义的抽象方法,一个类实现了Comparable接口,就说明它的对象可以和别人比较,当然和其他类的对象相比没什么意义,所以就和自己的对象比较好了。它要把自己和本类的另一个对象相比,把要和当前对象比较的那个对象传进来就好了,所以参数列表只有一个参数。
Comparator,比较器接口,它以or结尾是个名词,记忆成比较器应该不困难,比较器是什么自然不用多说了。
compare,它是比较器接口中定义的方法,所谓比较器自然是用来比较的,但是明显它不是用自己和另一个比较器对象进行比较,而是要比较另外的两个对象,所以compare方法要接受两个参数,把两个要比较的对象都传进来。
作者: 光头强    时间: 2014-10-7 21:13
你就记住Comparable是用在默认比较上的  里边复写CompaTo()          而比较器用的是Comparator  复写compare   
作者: 坚持525    时间: 2014-10-10 15:58
水竹 发表于 2014-10-7 20:21
按照英文的意思来记吧:
首先Comparable是可比较的,它是一个形容词,就类似于“可序列化的”、“可复制的 ...

你讲的很细,我明白了,谢谢:D
作者: 坚持525    时间: 2014-10-10 16:00
光头强 发表于 2014-10-7 21:13
你就记住Comparable是用在默认比较上的  里边复写CompaTo()          而比较器用的是Comparator  复写compa ...

ok,懂得了,谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2