是:
Collection
为什么二进制搜索不适用于binarySearch(List list, Object key)
?为什么只适用于Set
?
任何具体原因?
答案 0 :(得分:8)
二进制搜索意味着一个已排序的容器。一个集合是无序的(HashSet
),在这种情况下无法执行二进制搜索,或者它是有序的(TreeSet
),在这种情况下,它的查找操作已经像二进制搜索一样有效(即O(Log2(N))
)。
答案 1 :(得分:5)
二进制搜索适用于有序集合。 套装没有订购。
答案 2 :(得分:4)
在这种情况下,只有在对List进行排序和排序时,二进制搜索才有效。即它不适用于所有列表,只有预先排序的列表。
订单未订购,可能无法排序。
如果Set已排序,则可以使用NavigableSet
的其中一种方法答案 3 :(得分:3)
集合是无序的,并且没有包含它的元素的索引。因此,返回元素索引的binarySearch()方法没有意义。