
Java 中 HashMap 的底层数据结构
2020 年 1 月 17 日,一位福大大架构师抛出了一个问题:“java 中,HashMap 底层数据结构是什么?”
对此,解答者给出了明确的回答:Java 8 中,HashMap 采用数组 + 链表 + 红黑树的数据结构。
数组充当 HashMap 的主干,存储着键值对的引用。链表则作为数组的附加物,用于解决哈希冲突,即当两个或多个键哈希到同一个数组索引时。
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作
立即学习“Java免费学习笔记(深入)”;
如果链表中的元素过多,性能会受到影响。因此,当链表长度达到一定阈值时,HashMap 会将链表转换为红黑树,这是一种自平衡二叉搜索树。红黑树的插入、删除和查找操作比链表更有效率,从而提高了 HashMap 在处理大型数据集合时的性能。









