java contains()方法使用什么算法?

时间:2017-04-05 15:02:30

标签: java collections binary-search

我想有效地搜索我拥有的HashSet中的对象。

我想知道java集合中定义的contains()方法是否使用二进制搜索?或者我应该编写自己的二进制搜索算法吗?

1 个答案:

答案 0 :(得分:3)

HashSet中的一般搜索复杂度为O(1) - 意味着它是常量。写你自己的?那么这更好吗?

您绝对可以查看来源,了解内部HashSet实际上是HashMap;它使用存储桶和LinkedNodes和TreeNodes;了解这些是如何工作的等等。或者信任良好的实施并专注于其他事情;除非你诚实地要求更快的东西。