import java.lang.*;
import java.util.*;
public class AnotherArrayPractice{
public static void main (String[] args){
int [] arr={130,10};
System.out.println(arr[1]);
System.out.println(Arrays.binarySearch(arr,10));
System.out.println(Arrays.binarySearch(arr,130));
}
}
打印结果如下:10,-1,0。
我很困惑为什么binarySearch(arr,10)
给了我-1
,而实际上10
在数组中
答案 0 :(得分:4)
正如您可以从文档中读到的那样:
java.util.Arrays.binarySearch(int [] a,int key)方法使用二进制搜索算法在指定的int数组中搜索指定的值。在进行此调用之前,必须对数组进行排序。如果是未排序,结果未定义。
所以你必须才能订购数组!
相反,如果您使用未排序,则结果为未定义。
答案 1 :(得分:1)
"数组必须排序"
根据binarySearch规范