- 博客(7)
- 收藏
- 关注
原创 Java数据结构源码分析-Vector
1.VectorVector和ArrayList都是通过数组来构建顺序列表的数据结构,其关系同HashMap与HashTable一样,Vector是一个线程安全的数据结构,而ArrayList是非线程安全的,因此在不考虑多线程的情况下,ArrayList比Vector速度更加的快,在考虑线程安全的情况下,ArrayList提供了SynchronizedList类来保证线程安全,其访问速度同Vecto
2016-06-05 21:19:48 1272
原创 Java数据结构源码分析-LinkedList
1.LinkedListLinkedList是通过双向链表来维护链表的顺序性。 首先,我们看下类的构成,LinkedList通过两个iterator来顺序和倒序的访问数据。public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java
2016-06-05 21:00:49 534
原创 Java数据结构源码分析-ArrayList
1.ArrayList简介ArrayList是基于数组实现的顺序容器,其具有O(1)速度的访问的特点。其结构比较简单,因为我们快速的看下其中比较重要的几个方法。//ArrayList在调用构造函数的时候,分配数组的内存public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0)
2016-06-05 16:49:06 616
原创 Java数据结构源码分析-HashTable
1.HashTableHashTable同HashMap在数据结构的层面上是一致的,同时通过数组+链表的形式来存储数据。 其方法的功能和实现方式也基本一致。 就不在此处赘述,如果要详细了解可以参看HashMap的源码分析: http://blog.csdn.net/cweeyii/article/details/51583154 下面我们给出下几个重要方法的对比://HashMap的Pu
2016-06-05 15:05:35 751
原创 Java数据结构源码分析-HashSet
1.HashSetHashSet和HashMap在本质上是一样的,其实HashSet是一种特殊的HashMap,其所有的Entry中的value都是一个私有的对象。private static final Object PRESENT = new Object();public HashSet() { map = new HashMap<>(); }public boole
2016-06-05 14:45:30 755
原创 Java数据结构源码分析-HashMap
1.HashMap1.1 Map接口在开始介绍HashMap的源码前,我们先来了解下HashMap的在内存的数据组织方式: 整个结构分为两部分,第一部分是一个Entry[]数组,其数组的索引就是hash之后的slot位置。 第二部分是一个链表,每个Entry对象都会有一个Entry next的引用指向下一个Entry对象,如此当出现冲突时,只需要将冲突的数据加入到链表中就行了 接下来,我们来
2016-06-04 10:22:06 824
原创 Java数据结构源码分析-前言
##HashSet声明分析 ##public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable {......}
2016-06-03 22:12:21 473
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人