集合
想睡觉的小码农
我这个人很懒,什么也没有说
展开
-
JUC之常用辅助类-cyclicBarrier、CountDownLatch、Semaphore
在我个人理解下,这几个JUC包中的辅助类,实质上其实就是线程间的通信,只不过它们适用于不同的场景下。 1、CountDownLatch(减法计数器) 我们可以把它理解为一个加法计数器,计数器只有达到我们预先的设定的值之后,执行await方法的线程才可以继续往下执行。 demo package juctest; import java.util.concurrent.CountDownLatch; public class CountDownLatchTest { public stati原创 2021-07-06 00:00:50 · 192 阅读 · 0 评论 -
jdk1.8下的ConcurrentHashMap源码分析
1 、构造函数 1.1空参构造函数 /** * Creates a new, empty map with the default initial table size (16). */ public ConcurrentHashMap() { } 1.2指定初始化容量的构造函数 public ConcurrentHashMap(int initialCapacity) { if (initialCapacity < 0)//...原创 2021-07-02 17:02:24 · 215 阅读 · 0 评论 -
关于不安全的集合类与解决替代方案1-ArrayList
List --ArrayList ArrayList底层是维护了一个数组。 ArrayList线程不安全,因为其add等方法没有synchronized关键字修饰,也没有任何同步加锁处理。 public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }原创 2021-06-28 17:04:32 · 319 阅读 · 0 评论 -
在循环List时使用List.remove()引起的java.util.ConcurrentModificationException异常
2021-5-8 今天使用了for循环List,remove操作了list中的数据,运行测试的时候抛出了java.util.ConcurrentModificationException如下 java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) at java.util.ArrayList$Itr.next(Arr...原创 2021-05-08 15:06:24 · 557 阅读 · 0 评论 -
Arrays.asList()、ArrayList.subList()方法的使用注意事项
Arrays.asList() 使用Arrays.asList()方法会将Array类型的数组转变为List集合形式。 package collection; import java.util.Arrays; import java.util.List; public class round1 { public static void main(String[] args) { Integer[] arr= {1,2,3}; List<Intege原创 2020-11-10 15:43:41 · 460 阅读 · 0 评论 -
HashMap
JDK1.7与JDK1.8中的HashMap的区别 底层结构: JDK1.7 :数组+链表结构 JDK1.8:数组+链表+红黑树结构 hash表为空时的处理: JDK1.7中当哈希表为空时,会先调用inflateTable()初始化一个数组,而 JDK1.8则是直接调用resize()扩容 put()方法插入链表时: JDK1.7 :使用头插法 JDK1.8:插入...原创 2019-12-30 19:10:57 · 199 阅读 · 0 评论 -
HashMap,HashTable,ConcurrentHashMap
HashMap、HashTable、ConcurrentHashMap都是map接口的实现类 1、HashTable 继承实现情况 任何非空对象都可作为键或值(键值都不能为空) 底层数组+链表实现 线程安全,实现线程安全的方式是在进行修改的时候锁住了整个HashTable,效率低下,ConcurrentHashMap对此进行了优化(分段所) 初始size是11,扩容2*size...原创 2019-12-19 11:39:33 · 717 阅读 · 1 评论