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

我没有看懂这个程序中compare()为什么没有执行语句

楼主coolbird_cn(穿云鸟)2005-06-02 22:39:32 在 Java / J2SE / 基础类 提问

import   java.util.*;  
   
  public   class   AlphaComp   implements   Comparator   {  
      //就是下面这个方法  
      public   int   compare(Object   o1,   Object   o2)   {  
          //   Assume   it's   used   only   for   Strings...  
          String   s1   =   ((String)o1).toLowerCase();  
          String   s2   =   ((String)o2).toLowerCase();  
          return   s1.compareTo(s2);  
      }  
      public   static   void   main(String[]   args)   {  
          String[]   s   =   Array1.randStrings(4,   10);  
          Array1.print(s);  
          AlphaComp   ac   =   new   AlphaComp();  
          Arrays.sort(s,   ac);  
          Array1.print(s);  
          //   Must   use   the   Comparator   to   search,   also:  
          int   loc   =   Arrays.binarySearch(s,   s[3],   ac);  
          System.out.println("Location   of   "   +   s[3]   +  
            "   =   "   +   loc);  
      }  
  } 问题点数:20、回复次数:3Top

1 楼majcos(千里之行,始于足下)回复于 2005-06-02 23:27:57 得分 5

?  
  String   s1   =   ((String)o1).toLowerCase();  
          String   s2   =   ((String)o2).toLowerCase();  
          return   s1.compareTo(s2);  
  不是执行语句么?  
  搂主的意思是?Top

2 楼lipeipei(lipei)回复于 2005-06-02 23:37:06 得分 15

我来解释把  
  这里的Comparator是java设计的一个专门用来比较大小的接口。  
  这里的   public   int   compare(Object   o1,   Object   o2)   {  
  //   Assume   it's   used   only   for   Strings...  
  String   s1   =   ((String)o1).toLowerCase();  
  String   s2   =   ((String)o2).toLowerCase();  
  return   s1.compareTo(s2);  
  }就是这个Comparator中用于比较大小的函数了。  
  所有其他java内部提供的类需要比较大小比如说排序什么的就会调用这个函数。  
  这里main中建立了一个array。然后在sort也就是排序的时候把AlphaComp的对象作为排序原则传入到函数中。  
  然后sort在排序中就会调用AlphaComp的compare来做大小比较以确定元素的顺序Top

3 楼yaray(雅睿,生活在别处)回复于 2005-06-02 23:42:09 得分 0

Array1   可否贴出?Top

相关问题

  • ORACLE中,程序中如何一次执行多句SQL语句?
  • 请问怎样把sql语句转到程序中执行?
  • 同样的sql语句为何在程序中不能执行
  • 当执行第二条语句后,我如何中止程序,不让他们执行以后的程序段。
  • 如何让程序等待若干秒再执行下一条语句??
  • 为什么程序执行如下语句会报内存错误?
  • 紧急求救!!!我的asp程序为什么不执行 asp 语句?
  • 请问怎么在delphi程序中批处理的执行SQL语句
  • 通过程序执行sql语句出错!我是初学者,别笑我哈!
  • 奇怪的内存泄漏。语句没有执行。程序就退出了。why?????

关键词

  • 函数
  • 排序
  • alphacomp
  • tolowercase
  • compare
  • compareto
  • 比较大小
  • array
  • sort
  • ac

得分解答快速导航

  • 帖主:coolbird_cn
  • majcos
  • lipeipei

相关链接

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

广告也精彩

反馈

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