如何解决Collections.binarySearch列表列表,K键的说明爪哇
那是因为-(insertion point)
模棱两可。您将无法分辨以下几点:
- 在位置找到的物品
0
; - 找不到项目,插入点是
0
。
使用-(insertion point) - 1
,上述两种情况导致不同的返回值(0
和-1
)。
解决方法
给定以下声明(取自该
Oracle
Java教程),该声明与Collections类的binarySearch()方法有关:
两种形式的返回值都相同。如果列表包含搜索关键字,则返回其索引。如果不是,则返回值为 (-(插入点)-1)
,其中插入点是将值插入到List中的点,或者第一个元素的索引大于该值或list.size。 (),如果List中的所有元素都小于指定的值。
为什么返回值binarySearch()
not只返回负索引而不是负索引减去1?(上述引号的粗体部分)。
简而言之:为什么(-(insertion point) - 1)
而且不仅如此(-(insertion point))
?
提前致谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。