private static int indexedBinarySearch(List<? extends T> l, T key, Comparator<? super T> c) {
int low = 0;
int high = l.size()-1;
while (low <= high) {
[color=red] int mid = (low + high) >>> 1;[/color] T midVal = l.get(mid);
int cmp = c.compare(midVal, key);
if (cmp < 0)
low = mid + 1;
else if (cmp > 0)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found
}
为什么要使用无符号右移,和>>他们的区别是什么啊?难道是忽略符号?不关心是正数还是负数,那如果出现负数,应该报错才对啊。都不是正常的数组