我想有效地搜索我拥有的HashSet中的对象。
我想知道java集合中定义的contains()方法是否使用二进制搜索?或者我应该编写自己的二进制搜索算法吗?
答案 0 :(得分:3)
HashSet
中的一般搜索复杂度为O(1)
- 意味着它是常量。写你自己的?那么这更好吗?
您绝对可以查看来源,了解内部HashSet
实际上是HashMap
;它使用存储桶和LinkedNodes和TreeNodes;了解这些是如何工作的等等。或者信任良好的实施并专注于其他事情;除非你诚实地要求更快的东西。