随笔分类 - 集合
摘要:1.put方法 1.初始化,2.扩容,3.数据迁移 先判断数组table是否为null或空,是初始化; 存放当前元素的位置为空,一次CAS操作放入(不需要加锁); 当前table数组是否在扩容状态,是迁移数据 非空,给头节点加锁,判断是链表还是红黑树,放入值; 判断是否要转换为红黑树 1 publi
阅读全文
摘要:1. 什么是阻塞队列? 阻塞队列(BlockingQueue) 是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。 阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线
阅读全文
摘要:Collections类是Java中针对集合类的一个工具类,其中提供一系列静态方法。 1. sort(Comparator<? super E>):void List 对集合中的元素排序 2.reverse(List<?>):void 反转集合中的元素 3.shuffle(List<?>):void
阅读全文
摘要:集合 ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数 组的数据复制到新的存储空间中。当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进 行复
阅读全文