我想在我拥有的 HashSet 中有效地搜索对象。
我想知道在java集合上定义的contains((方法是否使用二进制搜索?还是我应该编写自己的二叉搜索算法?
HashSet
中的一般搜索复杂度是O(1)
- 这意味着它是恒定的。自己写?比这个好?
你绝对可以查看源代码,了解HashSet
实际上是内部的HashMap
;它使用存储桶、LinkedNode 和 TreeNodes;了解它们是如何工作的,等等。或者相信好的实现并专注于其他东西;除非你真的需要更快的东西。