深圳市交通运输委邮箱:求教一道JAVA题目

来源:百度文库 编辑:中科新闻网 时间:2024/05/03 09:04:43
创建一个包括两个String对象的类,然后做一个只比较第一个字符串的Comparable。编写程序来生成此类对象,验证一下,排序能正常工作。再做一个只比较第二个String的Comparator,然后验证一下排序也能正常运作。然后用Comparator进行二分查询。

/*
* TwoStrings.java
*
* Created on November 26, 2005, 3:35 PM

* @author georgetyh
*/
import java.util.*;
public class TwoStrings implements Comparable,Comparator{

String a,b;
/** Creates a new instance of TwoStrings */
public TwoStrings(String aa,String bb) {
a=aa;b=bb;
}

public int compare(Object o1, Object o2)
{
return ((TwoStrings)o1).b.compareTo(((TwoStrings)o2).b);
}

public int compareTo(Object o) {
return a.compareTo(((TwoStrings)o).a);
}

public String toString() {

return "a="+a+":b="+b;
}
public static void main(String []args)
{
TwoStrings key=new TwoStrings("","");
TwoStrings[] s=new TwoStrings[10];
System.out.println("Before sorted:");
for(int i=0;i<s.length;i++)
{

s[i]=new TwoStrings(String.valueOf(1000*Math.random()).substring(0, 3),String.valueOf(1000*Math.random()).substring(0, 3));
if(i==s.length/2)
{
key=s[i];
}
System.out.println(s[i]);
}
Arrays.sort(s);

System.out.println("After sorted:");
for(int i=0;i<s.length;i++)
{
System.out.println(s[i]);
}
System.out.println(""+key+" is found in s["+Arrays.binarySearch(s,key)+"]");

}

}