Java容器
文章平均质量分 96
Java容器
猎户星座。
花有重开日,人无再少年。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap概述
概述HashMap我们都不陌生, 也是java面试几乎必问的考点, 本系列我们来深入思考有关HashMap的设计思想和实现细节.HashMap解决了什么问题?任何数据结构的产生总对应着要解决一个实际的问题, HashMap的产生要解决问题就是:如何有效的 存 取 一组 key-vaule 键值对key-value键值对是最常使用的数据形式, 如何有效地存取他们是众多语言都需要关注的问题. 注意这里有四个关键字:key-value键值对 一组 存 取下面我们逐个来思考:转载 2021-01-04 14:09:02 · 225 阅读 · 0 评论
-
HashCode/Equals/==
概述首先 equals 和 hashCode 两个方法属于 Object 基类的方法:public boolean equals(Object obj) { return (this == obj);}public native int hashCode();复制代码可以看出 equals 方法默认比较的是两个对象的引用是否指向同一个内存地址。而 hashCode 这是一个 native 本地方法,其实默认的 hashCode 方法返回的就是对象对应的内存地址。hasCo转载 2021-03-07 17:50:33 · 133 阅读 · 0 评论 -
Hash算法及冲突解决方案
散列表散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。散列函数散列函数,顾名思义,它是一个函数。如果把它定义成 hash(key) ,其中 key 表示元素的键值,则 hash(key) 的值表示经过散列函数计算得到的散列值。散列函数的特点:1.确定性如果两个散列值是不相同的(根据转载 2020-12-14 23:38:00 · 1629 阅读 · 0 评论 -
JAVA集合之ArrayList
ArrayList定义public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable复制代码ArrayList实际上是一个动态数组,容量可以动态的增长,其继承了Ab...转载 2020-04-21 20:12:27 · 187 阅读 · 0 评论 -
集合中的Fail-Fast/Fail-Safe
背景设想一个场景,我们需要将一个集合中满足条件的元素删除:客户端提交了一个Array类型的数据,经过Spring框架的转换我们接收到的是ArrayList,其中某些数据在校验后不合法,需要去除,仅保留校验通过的数据。这时候,我们通常有两种方案:遍历,并将不合法数据删除 遍历,将合法数据保存在另一个集合中假设在考虑不同集合增删元素的效率,实现复杂度,以及不合法元素所占比例后(如果...转载 2020-03-01 12:50:52 · 236 阅读 · 0 评论 -
ConcurrentHashMap概述
1. 前言为什么要使用 ConcurrentHashMap主要基于两个原因:在并发编程中使用 HashMap 可能造成死循环(jdk1.7,jdk1.8 中会造成数据丢失) HashTable 效率非常低下2. ConcurrentHashMap 结构jdk 1.7 和 jdk 1.8 中,ConcurrentHashMap 的结构有着很大的变化,后面会讲解。2.1 j...转载 2020-02-29 22:04:04 · 2551 阅读 · 1 评论
分享