面试官: 谈谈对 HashMap 的理解
我: HashMap 是编程中最常用的一种集合类型之一,它是一种 key-value 健值对的数据结构,拥有O(1)的时间复杂度,读取效率很高,不是线程安全的
面试官:有阅读有 HashMap 的源码吗 ?
我: 有,HashMap 在 1.7 之前是一种链表+数组的数据结构, 1.8 的里面变成了 链表+数组和红黑树结合的数结构
面试官:如果目前有一个空的map,打算往里面放 100 个数据,它需要进行几次扩容操作 ?
我:HashMap 的初时长度为16 是 2^4,2^7 是 128, 128 的 0.75 是 96,所以需要进行 4次扩容,最终是一个 256 长度的Map