package 数组;import java.util.Arrays;
import java.util.Comparator;
public class ShuSouOne
{
public static void main(String[] args) 
{
int[] Aa={6,2,5,4,6,2,3};
Arrays.sort(Aa);
Arrays.binarySearch(Aa, 5);
System.out.print("排序后的数组为:");
for(int i=0;i<Aa.length;i++){
System.out.print(+Aa[i]+" ");
}
System.out.println();
int location=Arrays.binarySearch(Aa, 5);
System.out.println("查找5的位置是"+location+",Aa["+location+"]="+Aa[location]);
}
}
我是个新手,很想知道Arrays.binarySearch(Aa, 5); 在这段代码中起到什么作用,我将它注释掉以后发现并没有对结果有什么影响,希望哪位高手帮一下忙,多谢!

解决方案 »

  1.   

    API:binarySearch
    public static int binarySearch(int[] a,
                                   int key)使用二进制搜索算法来搜索指定的 int 型数组,以获得指定的值。必须在进行此调用之前对数组进行排序(通过上面的 sort 方法)。如果没有对数组进行排序,则结果是不明确的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。 参数:
    a - 要搜索的数组。
    key - 要搜索的值。 
    返回:
    搜索键的索引,如果它包含在列表中;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入列表的那一点:即第一个大于此键的元素索引,如果列表中的所有元素都小于指定的键,则为 list.size()。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
    另请参见:
    sort(int[])没有影响,因为int binarySearch方法返回的是整数。而你的程序中,没有利用它的返回值。
      

  2.   

    Arrays.binarySearch(Aa, 5,Aa[0]);
    这个是什么意思?查看Api的Chm,只有Arrays.binarySearch(Aa, 5);
    或者binarySearch(Object[] a, int fromIndex, int toIndex, Object key)
    不是2个参数就是4个参数,那么3个参数的时候表示什么呢