//这个类各位可以先忽略不看
import java.util.*;
public class Circle implements Comparable
{
int radius = 0;

public Circle(int radius)
{
this.radius = radius;
}

public int compareTo(Object obj)
{
int radius = ((Circle)obj).radius;
if (radius>this.radius)
return -1;
else if (radius<this.radius)
return 1;
else 
return 0;
}

public String toString()
{
return ""+this.radius;
}

public static void main(String[] args)
{
Circle[] circle = {new Circle(2),new Circle(10),new Circle(8),new Circle(4),new Circle(12)};
Arrays.sort(circle);
System.out.println("排序后:"+Arrays.toString(circle));
}
}///////////////////////////////////////////////////////////////
import java.util.*;
public class ArraySearch 
{
public static void main(String[] args)
{
int loc;
Circle[] circle = {new Circle(2),new Circle(10),new Circle(8),new Circle(4),new Circle(12)};
Arrays.sort(circle);
//排序完之后我想查找circle数组中radius中值为7和9的对象,该如何实现呢,还望各位大哥赐教

}
}

解决方案 »

  1.   

    这个应该不难把?
    for(int i=0;i<circle.length;i++)
    {
      if(circle[i].toString().equals("7"))
      {
         System.out.println("找到radius为7的");
      }
      else if(circle[i].toString().equals("9"))
      {
         System.out.println("找到radius为9的");
      }
    }
      

  2.   

    总之你实现了public String toString()方法了,比较是很容易的了
    我觉得用二分法未必对lz的这种情况适合,因为半径为9,为7的就只有一个
      

  3.   

    主要是我们现在要应用arrays.binarysearch来做的!呵呵,要不你说的那个方法我也可以做出来的
      

  4.   

    System.out.println(Arrays.binarySearch(circle,"7"));
    那就是这样子了
      

  5.   

    可是这样搜索的不是circle中radius的值
      

  6.   

    System.out.println(Arrays.binarySearch(circle,new Circle("7")));
    这样看看了
    如果有,则会返回相应位置的
      

  7.   

    int index=Arrays.binarySearch(circle,new Circle(7));
    //index是排序后new Circle(7)在数组circle中的下标
    if(index>=0)
    {
       System.out.println("找到了"+new Circle(7));
    }
    else System.out.println("没有找到"+new Circle(7));
      

  8.   

    别自己写,网上很多实现的例子,用bytebuffer吧,去网上搜索一个
      

  9.   

    malligator(不能再整天泡在CSDN里了!) ( ) 信誉:100    Blog 谢谢啦,受教了
      

  10.   

    hdhmail2000(禅剑飞雪) ( ) 信誉:100    Blog 晕,你可以对比一下!差很多!我只看重点!没用写得再多也是没用哈!呵呵!
      

  11.   

    System.out.println(Arrays.binarySearch(circle,new Circle("7")));
    这样看看了
    如果有,则会返回相应位置的到这里你都不知道怎么做,只能说明你太弱智!