Collections.binarySearch()与List indexOf()

Tru*_* Ha 8 java algorithm collections list

我有超过37K的项目清单,我已经实现了hashCode(),equals(),所以我不知道Collections.binarySearch()能帮助提高性能和速度比indexOf()方法.

Dav*_*nco 16

如果您的集合已经排序,binarySearch()将是O(log n)而不是indexOf()'O(n),您肯定会看到改进.


jta*_*orn 9

为了使binarySearch()起作用,必须对列表进行排序.equals()和hashCode()与排序无关.您的对象需要是可比较的,或者您必须拥有相关的比较器.无论哪种方式,您必须先排序列表.

是的,假设列表已排序,那么与indexOf()相比,您可能会从binarySearch()获得更好的性能.