我想在我拥有的 HashSet 中有效地搜索一个对象。
我想知道 java 集合中定义的 contains() 方法是否使用二分查找?或者我应该编写自己的二进制搜索算法?
最佳答案
HashSet
中的一般搜索复杂度为 O(1)
- 这意味着它是常数。自己写?比这个好?
你完全可以看看源码,明白一个HashSet
内部其实是一个HashMap
;它使用桶和 LinkedNodes 和 TreeNodes;了解这些是如何工作的,等等。或者相信好的实现并专注于其他事情;除非你真的需要更快的东西。
关于java - java contains() 方法使用什么算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234951/