对象排序之Comparator,Comparable接口区别及应用

原创 2006年06月14日 15:03:00

    最近在做一个对象排序的功能,需要按不同规则排序.看了Arrays,Collections,的sort方法,

   了解了Comparator,Comparable两个接口,找到了适用于自己的排序办法,下面把自己的

   理解和收集到的我认为很经典的解释整理如下:

 comparable是通用的接口,用户可以实现它来完成自己特定的比较,而comparator可以看成一种算法的实现,在需要容器集合collection需要比较功能的时候,来指定这个比较器,这可以看出一种设计模式,将算法和数据分离,就像C++ STL中的函数对象一样。
前者应该比较固定,和一个具体类相绑定,而后者比较灵活,它可以被用于各个需要比较功能的类使用。可以说前者属于“静态绑定”,而后者可以“动态绑定”。

一个类实现了Camparable接口表明这个类的对象之间是可以相互比较的。如果用数学语言描述的话就是这个类的对象组成的集合中存在一个全序。这样,这个类对象组成的集合就可以使用Sort方法排序了。
而Comparator的作用有两个:
1,如果类的设计师没有考虑到Compare的问题而没有实现Comparable接口,可以通过Comparator来实现比较算法进行排序
2,为了使用不同的排序标准做准备,比如:升序、降序或其他什么序


 

Comparable接口与Comparator接口主要区别及实例

Comparable接口与Comparator接口主要区别: 1、前者(强烈推荐)是强行对是实现它的每个类的对象进行整体排序,此类被称为该类的自然排序,类的compareTo方法被称为它的自然比较方...
  • healthsun
  • healthsun
  • 2014年12月24日 11:22
  • 1049

Comparable与Comparator浅析

今天博主在翻阅TreeMap的源码,发现其键必须是实现Comparable或者Comparator的接口时产生了一些兴趣,比如在TreeMap中的put方法分别对Comparable和Comparat...
  • u013256816
  • u013256816
  • 2016年03月15日 19:56
  • 9194

Comparable和Comparator区分以及使用

前言Comparable和Comparator都是java提供的一个接口,它们应用的场景是在数组的排序中,比如Collection这个接口提供了一个sort的方法,里面可以使用这两个接口的实现类来完成...
  • sgls652709
  • sgls652709
  • 2015年09月04日 04:47
  • 648

Java排序之Comparable接口和Comparator接口的比较和应用示例

Camparable接口和Comparator接口的比较和应用示例
  • zolalad
  • zolalad
  • 2014年06月11日 15:39
  • 4170

Comparable和Comparator接口是干什么的?列出它们的区别。

Comparable和Comparator接口是用来对自定义的class比较大小的。 Comparator和 Comparable的区别:Comparator定义在Person的外部而Compara...
  • zhaiwenyuan
  • zhaiwenyuan
  • 2017年03月10日 22:54
  • 903

Java中的Comparable与Comparator的区别

Comparable和Comparable都是Java核心API提供的两个接口。从其名字来看,可以知道这两个接口在一定程度上都是用来比较东西的。但究竟是什么,什么是它们之间的区别?下面是两个例子来回答...
  • sunling_sz
  • sunling_sz
  • 2014年03月14日 12:48
  • 1284

对象排序之Comparator,Comparable接口区别

现有一个类person有三个属性,分别是name,age,sex。有一个List对象,保存了很多person对象的实例,请编写一个函数,对List里的实例进行排序。条件:18岁以上的人,排序顺序:性别...
  • yuhan_9204
  • yuhan_9204
  • 2016年05月19日 14:27
  • 271

java Comparable 和Comparator详解及 区别(附代码)

java中,对集合对象或者数组对象排序,有两种实现方式。 即:(1)对象实现Comparable 接口         (2)定义比较器,实现Comparator接口。 下面会简要介绍这两种方法...
  • tolcf
  • tolcf
  • 2016年08月17日 15:05
  • 2291

ArrayList容器排序 comparator接口与comparable接口的使用

1、实体类实现comparable接口,重写compareTo方法 package io; import java.text.DateFormat; import java.text.ParseEx...
  • chunxiaqiudong5
  • chunxiaqiudong5
  • 2016年10月08日 20:03
  • 833

Compare接口与Comparator接口区别与理解

 一、实现Compare接口与Comparator接口的类,都是为了对象实例数组排序的方便,因为可以直接调用  java.util.Arrays.sort(对象数组名称),可以自定义排序规则。...
  • oaa608868
  • oaa608868
  • 2016年12月05日 23:40
  • 907
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对象排序之Comparator,Comparable接口区别及应用
举报原因:
原因补充:

(最多只允许输入30个字)