java中hashmap容器实现查找O(1)时间复杂度的思考
易知,步骤1(计算)、步骤2(数组的查找)和步骤4(从键值对中取value值)都可以在O(1)时间内完成。那么,步骤3中链表的长度决定了整个hashmap容器的查找效率,这也是hashmap容器设计的关键。hashmap对hash的使用体现出一些设计哲学,如:通过key.hashCode()将普通的object对象转换为int值,从而可以将其视为数组下标,利用数组O(1)的查找性能。在由设计者保证了链表长度尽可能短的前提下,由于利用了数组结构,使得key的查找在O(1)时间内完成。
转载
2023-02-15 11:04:57 ·
757 阅读 ·
1 评论