我是个java初学者,在教材中看到一个忽略字符串大小写排序的例子,如下:
package com.wsy;
import java.util.Arrays;
import java.util.Comparator;
class SingleCompare implements Comparator{
public int compare(Object o1,Object o2){
String s1=(String)o1;
String s2=(String)o2;
return s1.toLowerCase().compareTo(s2.toLowerCase());
}
}
public class SortArray2 {
public static void main(String args[]){
String[] sa=new String[]{"b","C","a","234"};
Arrays.sort(sa, new SingleCompare());
System.out.println(Arrays.asList(sa));
}

}
我对其中Arrays.sort(sa, new SingleCompare())感到很困惑,第二个参数new SingleCompare()是如何使接口Comparator对排序产生作用的?方法compare在这里的用途是什么?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【insect_fly】截止到2008-07-26 15:39:11的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:0.00  %               结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    袄。。
    Arrays.sort()方法其实在使用的时候是自动调用了compare()这个方法,为了忽略大小写,所以重写了compare。
    就这样实现了忽略大小写来排序了。
      

  3.   

    你可以直接去看一下Arrays.sort()的代码.看代码比什么都清晰.
      

  4.   

    请教Arrays.sort(sa, new SingleCompare())的执行过程
      

  5.   

    不好意思,我是新手,请问Arrays.sort()代码在哪能找到。
      

  6.   

    你用一个编辑器,然后按住Ctrl,同时单击一个Arrays类名。
      

  7.   

    晕  还得下载一个jar包才能看代码  呵呵
    基本意思我了解了  
    就是Arrays.sort(T[] a, Comparator<? super T> c)的执行需要调用public int compare()函数。