关于binarySearch返回值为负数

        额。。。说过的要更新blog呢。。。

蛋疼的暑假,马上大四了,结果学校组织我们参加了2个月的实训。弱弱的说一句,别人都开学了,我还没放学。

今天遇到了一个以前没遇到过的问题,我就不用我拙计的语文水平描述了,请看代码:

import java.util.*;
public class Test {
	public static void main(String[] args) {
		String[] colors ={"blue","red","green","yellow","orange"};
		Arrays.sort(colors);
		int num1 = Arrays.binarySearch(colors, "green");
		int num2 = Arrays.binarySearch(colors, "gray");
		System.out.println(num1+" "+num2);
	}
}

输出结果是:1  -2

       “1” : 排序后,字符串“green”的下标。

       我脑袋里产生一个大大的问号“?”

        这个-2是怎么产生的?


API如是说:

参数:
a - 要搜索的数组
key - 要搜索的值
返回:
如果它包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)插入点 被定义为将键插入数组的那一点:即第一个大于此键的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。
 
对此不是很理解,所以记录下来。

你可能感兴趣的:(学习笔记)