
求教一道JAVA题目
创建一个包括两个String对象的类,然后做一个只比较第一个字符串的Comparable。编写程序来生成此类对象,验证一下,排序能正常工作。再做一个只比较第二个Strin...
创建一个包括两个String对象的类,然后做一个只比较第一个字符串的Comparable。编写程序来生成此类对象,验证一下,排序能正常工作。再做一个只比较第二个String的Comparator,然后验证一下排序也能正常运作。然后用Comparator进行二分查询。
展开
1个回答
展开全部
/*
* 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)+"]");
}
}
* 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)+"]");
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询