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

标签 java collections binary-search

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

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

最佳答案

HashSet 中的一般搜索复杂度为 O(1) - 这意味着它是常数。自己写?比这个好?

你完全可以看看源码,明白一个HashSet内部其实是一个HashMap;它使用桶和 LinkedNodes 和 TreeNodes;了解这些是如何工作的,等等。或者相信好的实现并专注于其他事情;除非你真的需要更快的东西。

关于java - java contains() 方法使用什么算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234951/

相关文章:

java - 如何使用java在电子邮件正文中显示符号

java - Ubuntu Tomcat、Apache 和 Java 中的环境变量

java - 在具有主键的类中覆盖 equals 方法而不破坏对称性

java - 为什么 useDelimiter 不工作 java

python - 最长递增子序列高效算法Python实现

python - 为什么 python 内置的二进制搜索功能运行速度如此之快?

java - Bash 脚本——使用expect 从标准输出读取

java - 在 CellRenderer 中显示选定的行和列

collections - pop 是否抛出异常?

c++ - 使用 vector C++进行二进制搜索