首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
JDK集合框架源码分析 - 简单概要
】的更多相关文章
JDK集合框架源码分析 - 简单概要
1.类继承体系 在集合框架的类继承体系中,最顶层有两个接口Collection.Map: Collection 表示一组纯数据 Map 表示一组key-value对 Collection的类继承体系: Map的类继承体系: 2.集合框架 2.1 ArrayList 可变数组的实现,高效随机访问RandomAccess ,但插入和删除元素时需要复制数组,开销较大:默认容量10,扩容为原来的1.5倍(oldCapacity + (oldCapacity >> 1)): fail-fast : mo…
Java集合框架源码分析(2)LinkedList
链表(LinkedList) 数组(array)和数组列表(ArrayList)都有一个重大的缺陷: 从数组的中间位置删除一个元素要付出很大的代价,因为数组中在被删除元素之后的所有元素都要向数组的前端移动一个位置(最坏的情况是:删除数组的第一个元素).在数组中间的某个位置插入一个元素也是类似的后果(最坏的情况是:在数组的头部插入一个元素). Java中链表的实现方案,实现了Iterator接口的LinkedList集合类如何遍历和删除元素呢?不需要像c语言那样使用复杂的指针,非常简单,代码如下:…
[集合]Collection集合框架源码分析
Collection接口 在java的集合类库中,基本接口是Collection,该接口的在集合中的源码定义如下(将源码中的注释删掉了): public interface Collection<E> extends Iterable<E> { // Query Operations // 查询操作相关方法 // 返回集合的元素个数 int size(); // 如果这个集合没有包含任何元素了就返回true,即判断集合是否为空 boolean isEmpty(); // 如果这个集…
YII框架源码分析(百度PHP大牛创作-原版-无广告无水印)
YII 框架源码分析 百度联盟事业部——黄银锋 目 录 1. 引言 3 1.1.Yii 简介 3 1.2.本文内容与结构 3 2.组件化与模块化 4 2.1.框架加载和运行流程 4 2.2.YiiBase 静态类 5 2.3.组件 6 2.4.模块 9 2.5 .App 应用 10 2.6 .WebApp 应用 11 3.系统组件 13 3.1.日志路由组件 13 3.2.Url 管理组件 15 3.3.异常处理组件 17 3.4.Cache 组件 17 3…
Java集合框架源码(二)——hashSet
注:本人的源码基于JDK1.8.0,JDK的版本可以在命令行模式下通过java -version命令查看. 在前面的博文(Java集合框架源码(一)——hashMap)中我们详细讲了HashMap的原理,对于HashSet而言,它是基于HashMap来实现的,底层采用HashMap来保存元素. 一.定义 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io…
【java集合框架源码剖析系列】java源码剖析之TreeSet
本博客将从源码的角度带领大家学习TreeSet相关的知识. 一TreeSet类的定义: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable 可以看到TreeSet是继承自AbstracSet同时实现了NavigableSet,Cloneable,Serializable三个接口,其中Cloneable,Seri…
【java集合框架源码剖析系列】java源码剖析之HashSet
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本.本博客将从源码角度带领大家学习关于HashSet的知识. 一HashSet的定义: public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable 可以看到HashSet继承自AbstractSet同时实现了Set,Cloneable,Serializable三个接口,…
【java集合框架源码剖析系列】java源码剖析之TreeMap
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本.本博客将从源码角度带领大家学习关于TreeMap的知识. 一TreeMap的定义: public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable 可以看到TreeMap是继承自AbstractMap同时实现了NavigableMap,Cl…
【java集合框架源码剖析系列】java源码剖析之ArrayList
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 本博客将从源码角度带领大家学习关于ArrayList的知识. 一ArrayList类的定义: public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable 从上述代码可以看到:ArrayList继承自AbstractList同时实…
【java集合框架源码剖析系列】java源码剖析之LinkedList
注:博主java集合框架源码剖析系列的源码全部基于JDK1.8.0版本. 在实际项目中LinkedList也是使用频率非常高的一种集合,本博客将从源码角度带领大家学习关于LinkedList的知识. 一LinkedList类的定义: public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Seri…