java中的Array.binarysearch

cod*_*r25 -2 java

鉴于:

import java.util.*;
public class Quest 
{ 
  public static void main(String[] args) { 
  String[] colors = {"blue", "red", "green", "yellow", "orange"}; 
  Arrays.sort(colors); 
   int s2 = Arrays.binarySearch(colors, "orange"); 
   int s3 = Arrays.binarySearch(colors, "violet"); 
    System.out.println(s2 + " " + s3);
}
}
Run Code Online (Sandbox Code Playgroud)

输出是2 -5.为什么?

Cor*_*bin 6

2是排序数组中的橙色索引(因此它是第三个元素).

-5是-insertion_point - 1.插入点是可以插入密钥的位置,并且数组保持排序.

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#binarySearch(int [],int)