hashmap在1.8的时间复杂度-爱代码爱编程
若没有哈希碰撞,根据哈希算法之后得到元素的位置,时间复杂度是O(1)
有哈希碰撞,如果是链表,因为链表所以O(n),但链表长度最大是8,是个常量,也可以是O(1),
如果是红黑树,红黑树查询的时间复杂读是O(logn),但是根据规律,链表转为红黑树的概率低于千万分之一,如果在极端情况下,所有元素都发生了hash碰撞,变成了红黑树,那么时间复杂度是O(logn)
不同数量出现的概率如下:
- 0: 0.60653066
- 1: 0.30326533
- 2: 0.07581633
- 3: 0.01263606
- 4: 0.00157952
- 5: 0.00015795
- 6: 0.00001316
- 7: 0.00000094
- 8: 0.00000006
大于8: <千万分之1
所以时间复杂度可以近似于是O(1)