给定以下语句(取自this Oracle Java教程),它与Collections类的binarySearch()方法有关:
为什么binarySearch()
的返回值不只返回负索引,而不返回负索引减去1? (上述引号的粗体部分)。
简而言之:为什么是(-(insertion point) - 1)
而不是(-(insertion point))
?
提前致谢。
最佳答案
那是因为-(insertion point)
会模棱两可。您将无法分辨以下几点:
在0
位置找到
0
。 使用
-(insertion point) - 1
,上述两种情况导致不同的返回值(0
和-1
)。