
java集合
文章平均质量分 80
神都燕
浮生如梦,梦中梦,梦难醒。——递归
展开
-
ArrayList线程是否安全?以及解决方案
1,概述Arraylist是一个有序的集合,底层是基于数组实现的。所以查询速度快,但是增删相对较慢。而且是一个非线程安全的集合。下面我们结合源码看一下为什么非线程安全。2,源码分析:public boolean add(E e) { /** * 添加一个元素时,做了如下两步操作 * 1.判断列表的capacity容量是否足够,是否需要扩容 * 2.真正将元素放在列表的元素数组里面 */ ensureCapacityInternal(size +原创 2020-08-07 16:59:35 · 1332 阅读 · 0 评论 -
HashMap原理
Hash原理:1,特性:1⃣️,键值对key-value,实现了map接口2⃣️,允许使用null作为key3⃣️,无序4⃣️,线程不安全(线程安全推荐考虑currentHashMap)2,基础属性 staticfinalintDEFAULT_INITIAL_CAPACITY = 1<< 4; //默认初始化大小 16 staticfinalfloatDEFAULT_LOAD_FACTOR = 0.75f; //负载因子0.75...原创 2020-08-07 13:37:28 · 141 阅读 · 0 评论 -
List集合 与Set集合
Collection:List与Set的父接口:主要方法: add() remove() removeAll() isEmpty() contains() 可以使用呢增强for循环遍历 可以使用iterator迭代器遍历LIst 接口1,有序 2,可重复 由于list接口继承于Collection接口所以方法基本如上所示。 List接口的三个典型实...原创 2018-09-11 15:06:46 · 240 阅读 · 0 评论 -
CurrentHashMap集合
由于码子,插图太麻烦了,我就做那么详细了。说的简单点,做个笔记,以后自己做大佬了再修改。ConcurrentHashMap,是Concurrent并发包下的一个集合类。存在的原因主要是解决并发情况下的资源访问,用于解决HashTable性能低下,HashMap在并发操作时候会导致HashMap的entry链表形成环路,一旦形成环路,entry的next节点永远不为空,引起死循环, Concu...原创 2018-09-11 21:44:23 · 1346 阅读 · 0 评论 -
java集合HashMap与HashTable
数组: 1,长度固定 。 2,用下标索引。 3, 所有的元素类型一致 。 HashTable: 键值对形式存储 key和value都不能为空 线程安全 HashTable继承自Dictionary类,实现了三个接口,分别是Map,Cloneable和 Java.io.Serializable , 主要方法:如put,get,remove和reh...原创 2018-09-11 10:44:34 · 180 阅读 · 0 评论