先看看类定义: 在看看Node的定义: Node中保存着存入集合的对象,同时也保存着上一个节点和下一个节点,由此可知,LinkedList 内部采用的是双向链表结构。 再看看CRUD操作: add: 与linkLast对应的还有linkFirst: 既然存在在对尾、队尾添加元素,那么是不是也应该存在 ...
分类:
编程语言 时间:
2016-07-04 01:03:41
阅读次数:
383
LinkedList简介 LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。 LinkedList同样是非线程安全的,只在单线程下适合使用。 LinkedList实现了Serializable接口,因此它支持序列化 ...
分类:
编程语言 时间:
2016-07-03 10:23:08
阅读次数:
230
ArrayList简介 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一 ...
分类:
编程语言 时间:
2016-07-02 10:20:25
阅读次数:
250
Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 ...
分类:
编程语言 时间:
2016-07-01 01:13:50
阅读次数:
235
Java集合工具包位于Java.util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合、哈希表等。学习Java集合框架下大致可以分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 ...
分类:
编程语言 时间:
2016-06-29 18:35:31
阅读次数:
193
Vector 简介 (1)Vector类也是以数组结构为基础,可以直接使用数组索引进行访问,但是它具有可自由增长的特性; (2)实现了RandomAccess支持随机访问,Cloneable可以实现克隆,Serializable能够被序列化; (3)Vector其实与ArrayList功能类似,但是 ...
分类:
其他好文 时间:
2016-04-30 18:16:19
阅读次数:
224
LinkedList简介 (1)基于双向循环链表的结构,实现了Deque接口,可以用作堆栈、队列或双端队列使用; (2)实现为非同步的,即在多线程下是不安全的,单线程安全; (3)实现了Cloneable、Serializable,可以克隆与被序列化; JDK1.7-LinkedList源码详细分析 ...
分类:
其他好文 时间:
2016-04-21 16:34:41
阅读次数:
246
首先这只是我的笔记,可能会有错误,如果能入各位看官法眼请随意指出,我会虚心接受~~ 主要是参考大神的博客 http://blog.csdn.net/column/details/collection.html java集合工具包位于util包下,包含了很多常用的数据结构,如数组、链表、栈、队列、集合 ...
分类:
编程语言 时间:
2016-04-18 20:39:08
阅读次数:
189
数据结构中有数组和链表来实现对数据的存储,这两者有不同的应用场景,数组的特点是:寻址容易,插入和删除困难;链表的特点是:寻址困难,插入和删除容易;哈希表的实现结合了这两点,哈希表的实现方式有多种,在HashMap中使用的是链地址法,也就是拉链法。看下面这张流传很广的图, 拉链法实际上是一种链表数组的
分类:
编程语言 时间:
2016-03-16 20:51:14
阅读次数:
247
前面学习了ArrayList的源码,数组是顺序存储结构,存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1),数组的特点是寻址容易,插入和删除困难。今天学习另外的一种常用数据结构LinkedList的实现,LinkedList使用链表作为存储结构,链表是线性存储
分类:
编程语言 时间:
2016-03-15 23:13:49
阅读次数:
290