binarySearch(Object[] a,Objext key)方法
原理
此方法可使用二分搜索法来搜索指定数组,以获得指定对象。该方法返回要搜索元素的索引值。binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要。
注意
在调用此方法前要对数组进行排序。如果没有对数组进行排序,则结果是不确定的。如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。
代码演示
package com.edu.jsu;
import java.util.Arrays; //调用Arrays类
public class Text {
public static void main(String[] args) {
int[] a = new int[]{1,5,7,3,6,4,8};
Arrays.sort(a); //将数组a进行排序
int index = Arrays.binarySearch(a,8); //在数组中找到值为8的元素并返回下表
System.out.println(index);
}
}
binarySearch(Objct[], a, int fromIndex, int toIndex, Object key)方法
原理
该方法在指定的范围内检索某一元素,如果要搜索的元素key在指定的范围内,则返回搜索键的索引;否则返回-1或“-”(插入点)。如果范围中的所有元素都小于指定的键,则插入点为toIndex(注意,这保证了当且仅当此键被找到时,返回的值将大于或等于0)。
注意
使用该方法前,同样要对数组进行排序,这样才能获得准确的牵引值。
代码演示
package com.edu.jsu;
import java.util.Arrays;
public class Text {
public static void main(String[] args) {
String[] a = new String[]{"ab","cd","ef","yz"};
Arrays.sort(a);
int index = Arrays.binarySearch(a,0,2,"cd");
System.out.println(index);
}
}