在我们迭代操作集合时,有时可能需要改变集合的元素,若操作不当,经常都会出现不正确的结果或者并发操作异常,如下: Exception in thread…
分类:java集合源码分析
java 中的集合(十三) LinkedHashMap源码分析
LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,…
Java 集合迭代器源码及工作过程分析
Java 为我们提供了现成的集合类库,我们常用的 List Set Map 等都是在开发过程中可以直接使用的,设计到集合就不得不说集合的遍历,之前分析迭代器模式时我们提到了在 Java 的集合功能实现中也使用了迭代器模式…
【Java集合类】LinkedList源码分析(jdk1.8)
ArrayList和LinkedList是List接口的两种实现,具有相同的查找、插入、删除操作,只是底层的实现方式不一样。LinkedList是以双向链表形式实现的集合类。 其增删操作由于不需要移动底层数组数据,只需要…
Java集合源码学习(三)LinkedList分析
原文地址:https://yq.aliyun.com/articles/38408?spm=5176.8091938.0.0.tjeCwH 前言 前面学习了ArrayList的源码, 数组是顺序存储结构,存储区间是连续的…
java集合LinkedList源码分析1
参考: 1. http://www.cnblogs.com/ITtangtang/p/3948610.html 2. http://blog.csdn.net/zw0283/article/details/5113216…
Java并发包源码学习之AQS框架(四)AbstractQueuedSynchronizer源码分析
经过前面几篇文章的铺垫,今天我们终于要看看AQS的庐山真面目了,建议第一次看AbstractQueuedSynchronizer 类源码的朋友可以先看下我前面几篇文章: 《Java并发包源码学习之AQS框架(一…
Java集合源码分析之超级接口:Collection
Collection是List、Queue和Set的超集,它直接继承于Iterable,也就是所有的Collection集合类都支持for-each循环。除此之外,Collection也是面向接口编程的典范,通过它可以在…
Java集合源码分析→HashMap
HashMap简介 HashMap是基于哈希表和链表实现的,里面的每一个元素都是键值对的形式,通过单链表的形式解决键冲突问题,超过阀值自动扩容。HashMap的size最好是2的倍数,默认大小是16,默认加载因子是0.7…
JAVA集合源码分析系列:ArrayList源码分析
一.ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneab…
lesson2:java阻塞队列的demo及源码分析
本文向大家展示了java阻塞队列的使用场景、源码分析及特定场景下的使用方式。java的阻塞队列是jdk1.5之后在并发包中提供的一组队列,主要的使用场景是在需要使用生产者消费者模式时,用户不必再通过多线程自己实现,可以通…
JAVA的HashTable源码分析
Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。Hashtable也是JDK1.0…