HashMap
是用来存储数据的,它底层在JDK 1.7
是数组+链表实现的,而JDK 1.8
是使用数组+链表+红黑树实现,通过对 key
进行哈希计算等操作后得到数组下标,把 value
等信息存放在链表或红黑树存在此位置。
如果两个不同的 key
运算后获取的数组下标一致,就出现了哈希冲突。数组默认长度是16,如果实际数组长度超过一定的值,就会进行扩容。
在JDK1.7使用的是数组+链表的实现,在JDK1.8中使用的是数组+链表+红黑树
因篇幅问题不能全部显示,请点此查看更多更全内容