java contains() 方法使用什么算法?
What algorithm does java contains() method use?
我想高效地搜索我拥有的 HashSet 中的对象。
我想知道 java 集合上定义的 contains() 方法是否使用二进制搜索?还是我应该自己写二分查找算法?
HashSet
中的一般搜索复杂度是 O(1)
- 这意味着它是常数。自己写?比这个好?
你绝对可以看源码,明白一个HashSet
其实内部是一个HashMap
;它使用桶和 LinkedNodes 和 TreeNodes;了解这些是如何工作的等等。或者信任好的实施并专注于其他事情;除非你真的需要更快的东西。
我想高效地搜索我拥有的 HashSet 中的对象。
我想知道 java 集合上定义的 contains() 方法是否使用二进制搜索?还是我应该自己写二分查找算法?
HashSet
中的一般搜索复杂度是 O(1)
- 这意味着它是常数。自己写?比这个好?
你绝对可以看源码,明白一个HashSet
其实内部是一个HashMap
;它使用桶和 LinkedNodes 和 TreeNodes;了解这些是如何工作的等等。或者信任好的实施并专注于其他事情;除非你真的需要更快的东西。