氟塑料离心泵www.buybeng.com

jquery教程http://www.software8.co/wzjs/jquery/

Comparator与Comparable的区别?

相同点:都是用于比较,排序的接口。例如对于List对象,如果存储的对象类型不是自定义的,像String那样已经实现了Comparable接口,可以直接Collections.sort(Stringlistname),就可以排出序来了。而对于自定义的对象类型,就需要我们自己去实现Comparator或者Comparable接口。

 

不同点:Comparable是在自定义类的内部实现的,在类声明的地方加上implements Comparable,然后在其内部实现compare方法。Comparator是在自定义类的外部自定义一个比较类,这个比较类要实现Comparator接口,实现compare方法。也可以不具体定义一个比较类,直接在Comparator的内部将compare方法实现就可以了。总之就是要自己实现一个比较器。
下面通过代码直观的说明:
自定义类为A1:

 (1)A1类内实现Comparable:

 进行排序验证:
 输出结果:
(2)A1类外实现Comparator:
①定义一个具体的类实现Comparator:
进行排序验证: 
 输出结果同上。
②无需定义一个具体的实现类,直接new一个Comparator:

 输出结果同上。
综合:两种方法各有优劣,实现Comparable的方法,一劳永逸,但是需要修改自定义类的源代码。Comparator不需要修改源代码,但是需要在使用的地方对Comparator进行实现。
原文 :www.hzlxwx.com

posted on 2013-04-18 16:13 你爸是李刚 阅读(298) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2013年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿

随笔档案

文章档案

技术网站

行业网站

搜索

最新评论

阅读排行榜

评论排行榜

站长网 氟塑料离心泵 注塑机 液晶广告机