CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

Comparabe和Comparator的区别?

楼主toto2004(易德)2005-04-04 00:32:58 在 Java / J2EE / EJB / JMS 提问

以下两个类中分别实现了Comparable   和Comparator请问:  
      Comparable   中的   compareto   和Comparator中的compare两个方法有区别吗??  
   
  import   com.bruceeckel.util.*;  
  import   java.util.*;  
   
  public   class   CompType   implements   Comparable   {  
      int   i;  
      int   j;  
      public   CompType(int   n1,   int   n2)   {    
          i   =   n1;  
          j   =   n2;  
      }  
       
      public   String   toString()   {    
          return   "[i   =   "   +   i   +   ",   j   =   "   +   j   +   "]";  
      }  
   
      public   int   compareTo(Object   rv)   {          
          int   rvi   =   ((CompType)rv).i;              
          return   (i   <   rvi   ?   -1   :   (i   ==   rvi   ?   0   :   1));    
      }  
       
      private   static   Random   r   =   new   Random();  
       
      private   static   int   randInt()   {  
          return   Math.abs(r.nextInt())   %   100;  
      }  
       
      public   static   Generator   generator()   {  
          return   new   Generator()   {  
              public   Object   next()   {    
                  return   new   CompType(randInt(),randInt());    
              }  
          };  
      }  
       
      public   static   void   main(String[]   args)   {  
          CompType[]   a   =   new   CompType[10];  
          Arrays2.fill(a,   generator());        
          Arrays2.print("before   sorting,   a   =   ",   a);  
          System.out.println("\n");  
           
          Arrays.sort(a);      
          Arrays2.print("after   sorting,   a   =   ",   a);  
      }  
  }   ///:~  
   
  //////////////////////////////////////////////////////  
  import   com.bruceeckel.util.*;  
  import   java.util.*;  
   
  class   CompTypeComparator   implements   Comparator   {  
      public   int   compare(Object   o1,   Object   o2)   {   //o1为第一个元素,o2为o1后面那个元素  
          int   j1   =   ((CompType)o1).j;  
          int   j2   =   ((CompType)o2).j;  
          return   (j1   <   j2   ?   -1   :   (j1   ==   j2   ?   0   :   1));  
      }  
  }  
                         
  public   class   ComparatorTest   {  
      public   static   void   main(String[]   args)   {  
          CompType[]   a   =   new   CompType[10];  
          Arrays2.fill(a,   CompType.generator());  
          Arrays2.print("before   sorting,   a   =   ",   a);  
          System.out.println("\n");  
         
          Arrays.sort(a,   new   CompTypeComparator());  
          Arrays2.print("after   sorting,   a   =   ",   a);  
      }  
  }   ///:~ 问题点数:0、回复次数:3Top

1 楼toto2004(易德)回复于 2005-04-04 12:08:12 得分 0

自己来顶吧Top

2 楼toto2004(易德)回复于 2005-04-05 21:17:20 得分 0

怎么就一个人都不回答我啊:(  
  继续顶Top

3 楼toto2004(易德)回复于 2005-04-13 11:58:03 得分 0

顶Top

相关问题

  • -> 和 . 的区别?
  • in和or的区别
  • comparable和Comparator区别,怎么用?望高手指教.
  • jmail和cdonts区别
  • count() 和 count(*)区别?
  • TCP和UDP区别
  • equals和==的区别
  • char 和 TCHAR 区别
  • EnterpriseBean和EntityBean区别
  • CMP和BMP区别

关键词

  • comptype
  • comparable
  • 区别
  • rv
  • compareto
  • util
  • import

得分解答快速导航

  • 帖主:toto2004

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo