java List 的两种常用实现类ArrayList和linkedList
来源:互联网 发布:python参考手册 豆瓣 编辑:程序博客网 时间:2024/05/15 23:52
LinkedList类
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在 LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。
注意LinkedList没有同步方法。如果多个线程同时访问一个List,则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List:
List list = Collections.synchronizedList(new LinkedList(...));
ArrayList类
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法 并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
和LinkedList一样,ArrayList也是非同步的(unsynchronized)。
ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法 并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。
和LinkedList一样,ArrayList也是非同步的(unsynchronized)。
ConcurrentLinkedQueue的实现原理分析
http://www.infoq.com/cn/articles/ConcurrentLinkedQueue
0 0
- java List 的两种常用实现类ArrayList和linkedList
- List ADT的两种实现方式:ArrayList和LinkedList
- List的ArrayList和LinkedList
- java中List,ArrayList,LinkedList的常用方法
- List-ArrayList、LinkedList、Vector的底层实现和区别
- Java基础之集合List-ArrayList、LinkedList、Vector的底层实现和区别
- java List集合记录 ArrayList和LinkedList的区别
- JavaSE入门学习35:Java集合框架之List接口及其实现类ArrayList和LinkedList
- java List LinkedList ArrayList
- java??List?LinkedList?ArrayList ??
- java、List、ArrayList、LinkedList
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
- list arraylist 和 linkedlist
- List接口的实现类---ArrayList、LinkedList、Vector之间的区别--------(java复习)
- List接口的实现类ArrayList和LinkedList的一些区别(备忘)
- 搞懂JAVA集合类--List的实现 ArrayList、Vector、LinkedList(二)
- SpringMVC利用注解实现异常处理
- IOS SDK详解之CALayer(二)
- JAVA给方法传递数组
- 波哥学JAVA,定义类 声明属性 创建对象 实例化对象 对象调用属性或者方法
- Linux Namespaces机制
- java List 的两种常用实现类ArrayList和linkedList
- csdn上创建一个博客
- FileInputStream、FileOutputStream的应用
- vb.net正则表达式快速入门(1)
- 【Java】线程并发、互斥与同步
- LeetCode OJ 之 Permutation Sequence (排列组合)
- ⑦--OC核心语法
- 【BZOJ 1047】 [HAOI2007]理想的正方形
- 全志行车记录仪里面FireEyepublic.apk反编译的分析(四)——Handler分析