Arrays.binarySearch() 实现

public static int binarySearch(char[] array, int startIndex, int endIndex, char value) {
    checkBinarySearchBounds(startIndex, endIndex, array.length);
    int lo = startIndex;
    int hi = endIndex - 1;
 
    while (lo <= hi) {
        int mid = (lo + hi) >>> 1;    //无符号右移
        char midVal = array[mid];
 
        if (midVal < value) {
            lo = mid + 1;
        } else if (midVal > value) {
            hi = mid - 1;
        } else {
            return mid;  // value found
        }
    }
    return ~lo;  // value not present
}

你可能感兴趣的:(Arrays.binarySearch() 实现)