java.util.Arrays.binarySearch() 方法用于搜索指定双精度数组中的指定值二分查找算法。在进行此调用之前,必须对数组进行排序(如通过 sort(double[]) 方法)。如果未排序,则结果不确定。如果数组包含多个具有指定值的元素,则无法保证会找到哪一个。
语法
public static int binarySearch(double[] a, double key)
参数
a | 指定要搜索的数组 |
key | 指定要搜索的值。 |
返回值
返回搜索键的索引,如果它包含在数组;否则,(-(插入点) - 1)。插入点定义为将键插入数组的点:大于键的第一个元素的索引,如果数组中的所有元素都小于指定键,则为 a.length。
异常
无。示例:
在下面的示例中,java.util.Arrays。 binarySearch() 方法用于搜索并返回给定双精度数组中搜索键的索引。
import java.util.*;
public class MyClass {
public static void main(String[] args) {
//创建双精度数组
double Arr[] = {10d, 5d, 25d, -10d, -30d};
//对双数组进行排序,数组必须是
//使用二分查找之前排序
Arrays.sort(Arr);
//打印排序后的数组
System.out.print("After sorting, Arr contains:");
for(double i: Arr)
System.out.print(" " + i);
//返回搜索到的key的索引号
double val = 25d;
int idx = Arrays.binarySearch(Arr, val);
System.out.print("\nThe index number of 25d is: " + idx);
}
}
上述代码的输出将是:
After sorting, Arr contains: -30.0 -10.0 5.0 10.0 25.0
The index number of 25d is: 4