| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> HashMap -> 正文阅读 |
|
[数据结构与算法]HashMap |
1.HashMap的底层数据结构JDK1.7及之前HashMap底层是数组和链表 JDK1.8及以后HashMap底层是数组和链表以及红黑树 链表如果过长的话,它会导致我们在使用HashMap进行查询(get)的时候效率比较低,链表转换为红黑树可以降低查询的复杂度,提高我们查询的效率。 2.JDK1.8什么时候链表会转化为红黑数HashMap在元素比较少的时候,也只会有数组+链表的结构。当链表的长度大于8,HashMap可能会做树化(链表转变成红黑树),不过就是需要再满足另外一个条件,就是数组的长度必须大于等于64(默认数组长度是16,经过两次扩容<*2>),链表才会转变为红黑树。否则,只会触发数组的扩容。 3.HashMap的扩容机制是怎样的3.1 什么条件下扩容 HashMap中最主要的数据结构是数组,一般情况下HashMap的元素是放在数组上的。如果数组已经有元素,那么就发生了Hash 冲突,那么就会使用链表或者红黑树的结构进行存储。 当然HashMap中数组的默认大小是16,如果不断的插入元素? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:29:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |