JDK版本:1.8 package java.util; import java.io.*; public class HashMap<K,V> extends AbstractMap<K,V> …
Java集合类---ArrayList源码分析
package java.util; public class ArrayList<E> extends AbstractList<E> implements List<E>, Ran…
Java集合-ArrayList深入浅出源码分析
ArrayList定义 ArrayList底层以数组实现,允许重复,默认第一次插入元素时创建数组的大小为10,超出限制时会增加50%的容量,每次扩容都底层采用System.arrayCopy() native方法复制到新…
Java 集合框架源码分析-集合框架概述
集合框架介绍 Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代…
Java 集合框架源码分析(六)——HashTable
HashTable介绍 HashTable经常和HashMap拿来做对比。HashTable同样是基于哈希表实现的,同样每个元素都是key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阈值)时,同…
Java 集合框架源码分析(八)—— ConcurrentHashMap
概述 ConcurrentHashMap 是Java 并发框架中很重要的一个类,是实现支持高并发、高吞吐量的线程安全的HashMap。当然不能直接对整个hashtable加锁,所以在ConcurrentHashMap中,…
Java集合源码分析1:JDK1.8源码分析之ArrayList
前言 在了解集合框架的源码之前应要先了解其底层的数据结构、了解其特点和源码中的属性及其作用。 ArrayList集合的底层数据结构是数组,数组元素类型为Object类型,即可以存放所有类型数据。 ArrayList集合框…
Java集合框架——Stack源码分析
Stack 类表示后进先出(LIFO)的对象堆栈。Stack 类继承了 Vector 类,并且对其进行了 5 个同步方法的扩展。 由于 Vector 基于数组实现,Stack 底层也是数组,其下标 0 的位置是栈底,数组…
Java集合框架——HashMap源码分析
HashMap基于哈希表实现的,每一个元素都是一个 key-value 对,内部通过单链表解决冲突的问题。 HashMap不是线程安全的,ConcurrentHashMap 是线程安全的。 public class Ha…
Java集合框架——LinkedHashMap源码分析
LinkedHashMap 继承了 HashMap 类。 HashMap 类的源码详细分析参考博客:HashMap源码分析 LinkedHashMap底层仍是数组和链表实现的。但是为什么可以在迭代时,返回和插入顺序相同的…
Java集合框架——LinkedHashSet源码分析
LinkedHashSet 是基于 LinkedHashMap 来实现的,所以其迭代时可以采用插入顺序或者访问顺序。 LinkedHashSet 的源码很简单,但需要搞清楚 HashMap,LinkedHashMap,H…
源码分析篇--Java集合操作(2)
4、两大集合接口 在Java集合中,有两大集合,一个是Collection接口及其实现类,另一个是Map接口及其实现类。下面给出这两种集合的框架图。如下所示。 4.1Collection接口框架图 4.2Map接口框架图…