![](https://img-blog.csdnimg.cn/20190918140012416.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java 集合
文章平均质量分 65
Java 集合
〆、风神
一只热爱编程的程序猿
展开
-
HashMap的扩容机制
为了方便说明,这里明确几个名词:capacity 即容量,默认16。loadFactor 加载因子,默认是0.75threshold 阈值。阈值=容量*加载因子。默认12。当元素数量超过阈值时便会触发扩容。什么时候触发扩容?一般情况下,当元素数量超过阈值时便会触发扩容。每次扩容的容量都是之前容量的2倍。HashMap的容量是有上限的,必须小于1<<30,即1073741824。如果容量超出了这个数,则不再增长,且阈值会被设置为Integer.MAX_VALUE( ,即永远不会超原创 2021-11-15 10:38:02 · 2761 阅读 · 0 评论 -
Java中List集合的交集,差集,并集
交集、差集、并集的概念交集:以属于A且属于B的元素为元素的集合成为A与B的交(集)差集:以属于A而不属于B的元素为元素的集合成为A与B的差(集)并集:以属于A或属于B的元素为元素的集合成为A与B的并(集)使用需求list的方法说明备注交集listA.retainAll(listB)listA内容变为listA和listB都存在的对象listB不变差集listA.removeAll(listB)listA内容变为listA存在而listB不存在的对象list原创 2021-04-20 16:15:12 · 666 阅读 · 1 评论 -
java 集合 之 如何选择集合
是否需要存储键值对——否:Set或者List————数据是否唯一——————是:Set——————是否有序————————是,用LinkedHashSet,TreeSet————————否,用HashSet————————如果你只知道数据要唯一但不确定是否有序,就要HashSet——————否:List————————是否线程安全——————————是:Vector——————————否:ArrayList,LinkedList————————————查询多用ArrayList—.原创 2021-04-22 14:14:00 · 94 阅读 · 0 评论 -
HashMap的实现原理
概述HashMap是Java中对Map接口的实现类。是其最常用的实现类中之一。主要有以下几个特性:HashMap中的key和value都允许为null,但最多只能拥有一个null的key,再次加入null的key会覆盖上一次的keyHashMap不保证顺序。HashMap非线程安全。HashMap的数据结构HashMap(jdk1.7)内部是以数组+链表的方式储存的数据。可以参考下图:从上图中可以看出,HashMap 底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个 Ha原创 2021-11-15 10:24:07 · 4361 阅读 · 0 评论 -
漫画:什么是HashMap?
简介众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。那你知道HashMap默认的初识长度是多少?为什么这么规定?高并发情况下,为什么HashMap可能会出现死锁?在Java8当中,HashMap的结构有什么样的优化?本文将为你深度解读HashMap的灵魂三问!众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做En原创 2021-11-15 15:29:21 · 95 阅读 · 0 评论