Java.util.Arrays 类

java.util.Arrays.binarySearch() 方法用于搜索指定的字符数组以获取指定的值二分查找算法。在进行此调用之前,必须对数组进行排序(通过 sort(char[]) 方法)。如果未排序,则结果不确定。如果数组包含多个具有指定值的元素,则无法保证会找到哪一个。

语法

public static int binarySearch(char[] a, char key)

参数

a 指定要搜索的数组
key 指定要搜索的值。

返回值

返回搜索键的索引,如果它包含在数组;否则,(-(插入点) - 1)。插入点定义为将键插入数组的点:大于键的第一个元素的索引,如果数组中的所有元素都小于指定键,则为 a.length。

异常

无。

示例:

在下面的示例中,java.util.Arrays。 binarySearch() 方法用于搜索并返回给定字符数组中搜索键的索引。

import java.util.*;

public class MyClass {
  public static void main(String[] args) {
    //创建一个char数组
    char Arr[] = {'a', 'z', 'p', 'q', 'w'};

    //对char数组进行排序,数组必须是
    //使用二分查找之前排序
    Arrays.sort(Arr);

    //打印排序后的数组
    System.out.print("After sorting, Arr contains:"); 
    for(char c: Arr)
      System.out.print(" " + c);

    //返回搜索到的key的索引号
    char val = 'z';
    int idx = Arrays.binarySearch(Arr, val);
    System.out.print("\nThe index number of 'z' is: " + idx);  
  }
}

上述代码的输出将是:

After sorting, Arr contains: a p q w z
The index number of 'z' is: 4