考慮下面的語句,從this甲骨文Java教程採取相關的類集合的的binarySearch()方法:Collections.binarySearch(List list,K key)澄清。 Java的
的返回值是兩種形式是相同的。如果列表包含 搜索關鍵字,則返回其索引。如果不是,則返回值爲 ( - (插入點) - 1),其中插入點是 的值,該值將插入列表中,或者第一個元素的索引大於值或list.size()如果列表中的所有元素都在 以內,則小於指定值。
爲什麼binarySearch()
的返回值不是隻返回負指數而是負指數減1? (上面引用的部分以粗體顯示)。
簡而言之:爲什麼(-(insertion point) - 1)
而不是(-(insertion point))
?
在此先感謝。
因爲如果它不在列表中,但應該位於'0'位置,否則將如何顯示? – maba 2013-04-04 12:44:50