给定以下语句,取自此Oracle java 教程,与 Collections 类的 binarySearch() 方法相关:
两种形式的返回值相同。如果 List 包含搜索键,则返回其索引。如果不是,则返回值为 (-(insertion point) - 1),其中插入点是值将被插入到 List 中的点,或者是大于该值或 list.size 的第一个元素的索引() 如果 List 中的所有元素都小于指定值。
为什么binarySearch()
not的返回值只返回负索引而不是负索引减1?(上面引用的粗体部分)。
简而言之:为什么(-(insertion point) - 1)
而不只是(-(insertion point))
?
提前致谢。