原文链接:http://blog.csdn.net/SO_zxn/article/details/79166550
我们直接来个案例比较直观:
package array;
import java.util.Arrays;
/**
* 查看一个数是否在数组中存在,如果存在打印出位置
* @author zxn
*
*/
public class ArraySearch {
public static void main(String[] args) {
int[] arr= {10,2,5,19,44};
search(arr, 2);
search(arr, 3);
}
/**
* binarySearch(int[],key)方法必须是一个排序好的数组
* 如果存在返回存在的位置,如果不存在则返回应该插入的位置取反减一
* @param arr
* @param a
*/
public static void search(int[] arr,int a) {
Arrays.sort(arr);
int binarySearch = Arrays.binarySearch(arr, a);
if (binarySearch>=0) {
System.out.println("存在于第"+binarySearch+"位");
}else {
System.out.println("不存在,但可以按序插入到第"+(-binarySearch-1)+"位");
}
}
}
结果,控制台打印如下:
存在于第0位
不存在,但可以按序插入到第1位