首先,ArrayList和LinkedList都是Java中常见的容器类,都实现了list接口;但是因为各自实现list接口时,采用的数据结构不一样,导致他们在使用上存在差异。 下面就总结一下: 1. ArrayList是基于数组来实现的线性表,只不过它是可以动态扩展的。如果不指定ArrayList ...
分类:
编程语言 时间:
2016-04-15 00:25:18
阅读次数:
140
List集合是指一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。 ArrayList和Vector作为List集合的两个典型实现,完全支持List接口的全部功能,并且在用法上几乎完全相同。 ArrayList和Vector的显著区别是: ArrayList不是线程安全的,Vector ...
分类:
编程语言 时间:
2016-04-13 10:56:32
阅读次数:
132
LinkedList及常用API ① LinkedList 链表 ② LinkedList类扩展AbstractSequentialList并实现List接口 ③ LinkedList提供了一个链表数据结构 ④ LinkedList有两个构造方法 a) LinkedList() b) LinkedL ...
Collection接口是List、Set、Queue接口的父接口Collection接口定义了可用于操作List、Set和Queue的方法--增删改查List接口及其实现类--ArrayListList是元素有序并且可以重复的集合,被称为序列。List可以精确的控制每个元素的插入位置,或删除某个位 ...
分类:
编程语言 时间:
2016-04-12 23:50:42
阅读次数:
355
注:本文基于JDK 1.7
1 概述
Java提供了一个丰富的集合框架,这个集合框架包含了许多接口、虚拟类和实现类。这些接口和类提供了丰富的功能,能够满足基本的聚合需求。下图就是这个框架的整体结构图:
可以看见,这个框架非常大,大到吃惊的地步。这个图的左面部分是集合,右面部分是类,中间的线代表了右面的类实现了左面的哪些接口。比如,AbstractList类实现了List接口,那么继承...
分类:
编程语言 时间:
2016-04-12 17:32:54
阅读次数:
222
List: ① List容器是有序的collection(也称为序列)。此接口的用户可以对List容器中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。List容器允许插入重复的值,包括null; ② 最常见的两个List接口的实现类是Ar ...
LinkedList实现List接口,并且实现了接口中的所有方法,这个操作可以作为一个栈来使用,同时也实现Deque接口,实现了add,poll方法可以为一个队列。内部是使用带头结点的循环双向链表。
结构如下图:
类的继承实现关系
内部类Entry的结构
部分方法源码剖析
add(E e)
添加一个元素的过程。
getFirst()...
分类:
其他好文 时间:
2016-04-11 14:31:25
阅读次数:
120
ArrayList是一个列表集合,实现了所有的List接口中的方法,允许存放任何元素,包括null,这个类与Vector很相似,除了synchronized不同。它能够根据元素的添加自动的增加集合的长度,默认大小为10。
集合的默认大小10:
Method:
E get(int index)
检查是否超越界限
set(int...
分类:
其他好文 时间:
2016-04-10 14:29:58
阅读次数:
110
接口 ArrayList实现了List接口,因此可以当作一个List来使用。 此外,ArrayList还实现RandomAccess接口和Serializable,说明ArrayList支持随机访问并且支持Java序列化机制。 实现 ArrayList内部含有的非静态域只有两个,一个用户保存数据的O ...
分类:
其他好文 时间:
2016-04-09 23:33:38
阅读次数:
267
对集合操作进行简单的进行测试速度,数据量20w,对map,list,set,array,queue进行遍历测试时间对比。 先粘贴一段对这些集合的介绍: 1.1 Set接口 1.2 List接口 1.3 Queue接口 1.4 Map接口 下面是测试代码: 时间:array:4ms,list:17ms ...
分类:
其他好文 时间:
2016-04-09 12:04:22
阅读次数:
219