Collections.binarySearch(列表列表,K键)的说明。爪哇

【字号: 日期:2024-02-22浏览:43作者:雯心
如何解决Collections.binarySearch(列表列表,K键)的说明。爪哇?

那是因为-(insertion point)模棱两可。您将无法分辨以下几点:

在位置找到的物品0;找不到项目,插入点是0。

使用-(insertion point) - 1,上述两种情况导致不同的返回值(0和-1)。

解决方法

给定以下声明(取自该OracleJava教程),该声明与Collections类的binarySearch()方法有关:

两种形式的返回值都相同。如果列表包含搜索关键字,则返回其索引。如果不是,则返回值为 (-(插入点)-1),其中插入点是将值插入到List中的点,或者第一个元素的索引大于该值或list.size。 (),如果List中的所有元素都小于指定的值。

为什么返回值binarySearch()not只返回负索引而不是负索引减去1?(上述引号的粗体部分)。

简而言之:为什么(-(insertion point) - 1)而且不仅如此(-(insertion point))?

提前致谢。

相关文章: