知识大全 比较comparable和Comparator

Posted

篇首语:过去并不等于未来,一定会有辉煌的一天,相信自己!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 比较comparable和Comparator相关的知识,希望对你有一定的参考价值。

比较comparable和Comparator  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

Comparable & Comparator 都是用来实现集合中的排序的 只是 Comparable 是在集合内部定义的方法实现的排序 Comparator 是在集合外部实现的排序 所以 如想实现排序 就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法    具体请看 <Thinking   in   java>   Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 String Integer 自己就可以完成比较大小操作)   而 Comparator 是一个专用的比较器 当这个对象不支持自比较或者自比较函数不能满足你的要求时 你可以写一个比较器来完成两个对象之间大小的比较    可以说一个是自已完成比较 一个是外部程序实现比较的差别而已    用 Comparator 是策略模式(strategy design pattern) 就是不改变对象自身 而用一个策略对象(strategy object)来改变它的行为    比如 你想对整数采用绝对值大小来排序 Integer 是不符合要求的 你不需要去修改 Integer 类(实际上你也不能这么做)去改变它的排序行为 只要使用一个实现了 Comparator 接口的对象来实现控制它的排序就行了    java 代码    // AbsComparator java     import   java util *;public   class   AbsComparator   implements   Comparator           public   int   pare(Object   o   Object   o )             int   v   =   Math abs(((Integer)o ) intValue());           int   v   =   Math abs(((Integer)o ) intValue());           return   v   >   v   ?     :   (v   ==   v   ?     :   );               可以用下面这个类测试 AbsComparator  

  // Test javaimport   java util *;

  public   class   Test       public   static   void   main(String[]   args)  

  //产生一个 个随机整数的数组(有正有负)      Random   rnd   =   new   Random();      Integer[]   integers   =   new   Integer[ ];      for(int   i   =   ;   i   <   integers length;   i++)      integers[i]   =   new   Integer(rnd nextInt( )   *   (rnd nextBoolean()   ?      :   ));

  system out println( 用Integer内置方法排序 );      Arrays sort(integers);      system out println(Arrays asList(integers));

  cha138/Article/program/Java/hx/201311/25976

相关参考

知识大全 Comparable 接口和 Collection 接口分析

Comparable接口和Collection接口分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Java实现Comparable接口

Java实现Comparable接口  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Javala

知识大全 Java学习中的Iterator&Comparable

Java学习中的Iterator&Comparable  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 儿子比较像舅舅,还是比较像爸爸,舅舅和爸爸那个像的多

儿子比较像舅舅,还是比较像爸爸,舅舅和爸爸那个像的多应该项爸爸吧,和舅舅关系不大爸爸的舅舅大,还是舅舅的爸爸大一样大!爸爸的舅舅是舅爷爷,舅舅的爸爸是老爷(外公)爸爸的儿子向爸爸的舅舅叫什么爸爸舅舅的

知识大全 本人口才不好,表达能力也不好,一遇到比较棘手和难搞定事情,就会比较紧张,和外人交集能力也不好。导致

本人口才不好,表达能力也不好,一遇到比较棘手和难搞定事情,就会比较紧张,和外人交集能力也不好。导致你好,你现在的这种情况应该是有几种原因造成的。性格内向,不太自信,读书不多是吗?其实这些都是可以改变的

知识大全 全面比较AWT和Swing

全面比较AWT和Swing  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  比较AWT和Swing

知识大全 十五年后深圳和上海比较那个城市发展得更好

十五年后深圳和上海比较那个城市发展得更好上海、深圳属于发展较成熟的城市,相对经济发展水平比较高,有很多高端的企业,发展空间和选择会比较多,但是相对的竞争也就比较激烈,而且消费水平较高。杭州作为一个发展

股权契约和债务契约的比较

股权契约和债务契约的比较一、债务契约和股权契约的大小和结构(一)契约中的道德风险问题对于债务契约,若项目失败,银行不知是由于运气差还是由于企业的道德风险所造成,因而不得不对项目进行监管。对于股权契约,

知识大全 你们觉得一加和华为哪个手机比较好

你们觉得一加和华为哪个手机比较好?华为和一加手机质量都不错,但华为做手机时间长,工艺方面比较成熟,系统也比较成熟,没有明显的缺陷。一加做手机时间短,手机工艺不是很完善,系统也不完善。最好买华为的,软件

知识大全 排序 - 各种内部排序方法的比较和选择(二)

  ()在基于比较的排序方法中每次比较两个关键字的大小之后仅仅出现两种可能的转移因此可以用一棵二叉树来描述比较判定  过程  当文件的n个关键字随机分布时任何借助于比较的排序算法至少需要O(nlgn)