hashmap是基于hash算法实现的。
(在线学习视频教程分享:java视频教程)
在使用put(key,value)方法时,hashmap会根据key.hashcode()方法得出key的hash值,然后根据hash值找到对应的bucket位置,如果这个区域已经有元素存在,则会再做一个euqal()比较,如果相等,则新增失败,因为hashmap不允许有相同key值,如果不相等,只是单纯的hash冲突。
jdk1.8前,hashmap会把这个元素存入链表的下一个节点, hashmap在每个链表节点中储存的都是键值对对象。jdk1.8之后,hashmap加入了红黑树,所以在链表节点数目超过8个后,会由链表转为红黑树,而一旦小于,又会从红黑树转回链表。
相关文章教程推荐:java快速入门
以上就是hashmap的工作原理是什么的详细内容。
