HashMap底层是哈希表结构。
依赖hashcode和equals方法,保证是同一个对象
key 可以为Null,同样的key会被覆盖掉.
底层采用的石数组,链表,红黑树来实现。
-
哈希散列:
Screen Shot 2022-05-04 at 7.26.13 PM.png
hashcode 根据字符串算出ascii码,进行mod(取模).
-
jdk 1.7
hashmap: 数组+链表
扩容后为当前大小的2倍。负载因子是0.75. -
jdk 1.8
用的是红黑树,用的石数组,链表,红黑树。
链表元素超过8个的时候,链表会转化成红黑树,该位置进行查找的时候可以降低时间复杂度为O(logN).
网友评论