HashMap的数据结构分析

jdk提供的HashMap作为一个性能很不错的集合类,其内部结构是如何的呢?

HashMap的数据结构分析

以上的解决方案的思想是集合数组和链表各自的优点结合成为一种数据结构,当发生hash冲突后,从图中可以看出hashmap采用了拉链结构解决。

对于每一个数组元素组成的链表结构称为桶,在获取hashmap元素数量时,以为遍历桶比较浪费时间,所以这点需要在开发过程中注意。

再了解一下hashcode和equals在这个数据结构中的作用,hashcode用于计算元素所在的桶的位置,也就是在ArrayList中的位置,equals用于遍历桶,查看每个桶中的元素是否与需要比较的元素equals。