【发布时间】:2016-02-20 02:29:45
【问题描述】:
您好,我想了解 hashmap 的工作原理。 Hashmap 基于 hasing 原理工作。
我怀疑我是否可以在同一个桶中包含不同的哈希编码对象?如果可能意味着 get(key) 如何达到 O(1) 时间 ?因为根据 hashcode 和 hashing,会找到 Bucket。但是必须遍历元素对。那么它将是O(1)。
例如 我的桶大小是 4 我将放置元素 "X"( hashcode - 3) , "Y" ( hashcode - 7) , "Z"( hashcode - 11) 。所有这三个元素桶位置都将是 3 。如果我调用 get("Z") 意味着它必须遍历存储桶中的元素,那么只有它才能找到。那么怎么会是O(1)呢。
请任何人帮助我消除我的疑问。提前致谢
【问题讨论】:
标签: java hashmap time-complexity hashcode