码迷,mamicode.com
首页 > 其他好文 > 详细

Comparator与Comparable的异同

时间:2016-08-21 16:34:15      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:

  它们都是Java的一个接口,都是用来实现集合中元素的比较、排序。

  Comparable(可比较的)是在集合内部定义的方法实现的排序。对象的本身已经拥有比较大小的能力;

  Comparator(比较器)是在集合外部实现的排序。对象的类结构不需要有任何变化,在比较的时候,除了传递对象外还需要将这个比较器传递过去;

举个栗子??

  Demo工程结构

技术分享

  Person.java

技术分享

  PersonComparator.java

技术分享

  TestComparable.java

技术分享

  TestComparator.java

技术分享

总结

  两种方法各有优劣。
  用Comparable简单,只要实现Comparable接口的对象,直接就成为一个可以比较的对象,但是需要修改源代码。
  用Comparator的好处是不需要修改源代码,而是另外实现一个比较器,当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比较打消了,并且在Comparator里面用户可以自己实现复杂的可以通用的逻辑,使其可以匹配一些比较简单的对象,那样就可以节省很多重复劳动了。

Comparator与Comparable的异同

标签:

原文地址:http://www.cnblogs.com/zhengbin/p/5792785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!