| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 2021-11-13 -> 正文阅读 |
|
[数据结构与算法]2021-11-13 |
HashMap(非线程安全,key和value部分可以为null)HashMap的默认初始容量是16,默认加载因子为0.75,自动扩容为原来的二倍。(默认加载因子是底层数组容量达到75%的时候,会自动扩容)(HashMap集合的初始化容量必需是2的倍数) 哈希表是数组和单向链表的结合体,充分发挥了数组和链表各自的优点。 ? HashMap底层其实是一个Node<K,V>[ ]数组,Node<K,V>是一个静态内部类,里面有四个属性:哈希值hash,K,V,下一个节点的内存地址。 JDK8之后,若Hash表中的单向链表长度超过8,单向链表会自动变成红黑树,当红黑树的长度小于6时,会自动变为单向链表。 对放在HashMap集合K部分的元素和HashSet的元素,都需要同时重写hashCode()和equals()方法(直接用idea生成,必须同时生成) 注意:同一个链表上Hash值一定是相同的因为数组下标相同,但同一个链表上k和k就算是equals也是false 如果重写hashcode()返回了一个固定值,那么hash表底层实际上就是一个纯单向链表,此时称为散列分布不均匀。 如果hashcode()都返回不同的值,那么hash表底层实际上就是一个一维数组,也称为散列分布不均匀。 K重复的时候,V会被覆盖? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 10:48:21- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |