
Map家族
光影和弦 一抹春色
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Hash冲突解决策略
哈希是一种通过对数据进行压缩, 从而提高效率的一种解决方法,但由于哈希函数有限,数据增大等缘故,哈希冲突成为数据有效压缩的一个难题。本文主要介绍哈希冲突、解决方案,以及各种哈希冲突的解决策略上的优缺点。 一、哈希表概述 哈希表的哈希函数输入一个键,并向返回一个哈希表的索引。可能的键的集合很大,但是哈希函数值的集合只是表的大小。 哈希函数的其他用途包括密码系统、消息摘要系统、数字签名系统,为了使这些应用程序按预期工作,冲突的概率必须非常低,因此需要一个具有非常大的可能值集合的散列函数。 密码系统:给定用户密码原创 2020-05-18 09:01:02 · 288 阅读 · 0 评论 -
吃透JAVA集合框架(超级详细)(综述)
一 集合框架图 简化图一: 简化图二: 说明:对于以上的框架图有如下几点说明 1、所有集合类都位于java.util包下。Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。 2、集合接口:6个接口(短虚线表示),表示不同集合类型,是集合框架的基础。 3、抽象类:5个抽象类(长虚线...原创 2020-04-27 13:23:11 · 345 阅读 · 0 评论 -
Map 家族之HashMap源码分析(超级详细 内含红黑树详解)(一)
一HashMap的概述 1.1类的继承结构 *Cloneable 空接口,表示可以克隆 Serializable 序列化 AbstractMap提供Map实现接口 HashMap是基于哈希表的Map接口的非同步实现。是以key-value存储形式存在。(除了不同步与允许使用null之外,HashMap和HashTable大致相同) HashMap的实现不是同步的,这意味着它不是线程安全的。它的...原创 2020-03-19 16:32:13 · 575 阅读 · 0 评论 -
Map系列之LinkedHashMap
LinkedHashMap继承HashMap并实现了Map接口,同时具有可预测的迭代顺序(按照插入顺序排序)。它与HashMap的不同之处在于,维护了一条贯穿其全部Entry的双向链表(因为额外维护了链表的关系,性能上要略差于HashMap,不过集合视图的遍历时间与元素数量成正比,而HashMap是与buckets数组的长度成正比的),可以认为它是散列表与链表的结合。 /** The head ...原创 2020-04-23 23:47:50 · 299 阅读 · 0 评论 -
Map系列之ConcurrentHashMap(JAVA8)
一 ConcurrentHashMap 1.8 Java8 Node 数组 + 链表 / 红黑树。当冲突链表达到一定长度时,链表会转换成红黑树。 2. 初始化 initTable /** Initializes table, using the size recorded in sizeCtl. */ private final Node<K,V>[] initTable() { ...原创 2020-04-24 09:31:10 · 521 阅读 · 0 评论 -
Map系列之AbstractMap
AbstractMap AbstractMap是一个抽象类,它是Map接口的一个骨架实现,最小化实现了此接口提供的抽象函数。在Java的Collection框架中基本都遵循了这一规定,骨架实现在接口与实现类之间构建了一层抽象,其目的是为了复用一些比较通用的函数以及方便扩展,例如List接口拥有骨架实现AbstractList、Set接口拥有骨架实现AbstractSet等。 下面我们按照不同的操作...原创 2020-04-23 23:53:19 · 307 阅读 · 0 评论