Under assumption that the hash function is uniform, we have worst-case performance for the search operation in a separate-chaining (e.g.
java.util.HashMap) hashtable $O(\log n)$. Why? I cannot really understand this. If we have a uniformly-distributed hash values it should be the case that each hash bucket contains approximately the same number of elements.
Therefore, if we have load-factor (
buckets_number/elements_number) say $0.5$, we guarantee the constant-time performance for search operations $O(2)$.