我没有看懂这个程序中compare()为什么没有执行语句
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




