JAVA中的vector,arraylist,linkedlist有什么共同点及区别?
来源:互联网 发布:指南针软件诈骗 编辑:程序博客网 时间:2024/06/05 23:06
在百度知道里获得这个问题的答案,感觉写的非常好。所以贴出来分享:
一·ArrayList,LinkedList,Vestor这三个类都实现了java.util.List接口,但它们有各自不同的特性,主要如下:一、同步性ArrayList,LinkedList是不同步的,而Vestor是的。所以如果要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费开销。但在多线程的情况下,有时候就不得不使用Vector了。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。二、数据增长从内部实现机制来讲ArrayList和Vector都是使用Objec的数组形式来存储的。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势,因为你可以通过设置集合的初始化大小来避免不必要的资源开销。三、检索、插入、删除对象的效率ArrayList和Vector中,从指定的位置(用index)检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的,可表示为O(1)。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行(n-i)个对象的位移操作。LinkedList中,在插入、删除集合中任何位置的元素所花费的时间都是一样的—O(1),但它在索引一个元素的时候比较慢,为O(i),其中i是索引的位置。
0 0
- JAVA中的vector,arraylist,linkedlist有什么共同点及区别?
- Java中ArrayList、Vector与LinkedList有什么区别
- ArrayList、Vector、LinkedList有什么区别?
- ArrayList 和 LinkedList 和Vector使用上有什么区别?实现上有什么区别?
- ArrayList 和 LinkedList 和Vector使用上有什么区别?实现上有什么区别?
- Java Vector ArrayList LinkedList 区别
- Java中的Vector,ArrayList,LinkedList
- Java中LinkedList与ArrayList有什么区别
- Java中的ArrayList、Vector和LinkedList的区别
- ArrayList,LinkedList,Vector的实现及区别
- ArrayList Vector LinkedList 区别
- Vector Arraylist LinkedList 区别
- ArrayList、Vector、LinkedList区别
- ArrayList,Vector,LinkedList区别
- Vector,ArrayList,LinkedList区别
- ArrayList、LinkedList、Vector区别
- Vector,ArrayList,LinkedList区别
- ArrayList、Vector、LinkedList区别
- PHP版本--HTTP session cookie原理及应用
- 谈谈冒泡算法
- 基础技巧
- 北京赛车程序平台系统开发修复
- linux命令详解——vim
- JAVA中的vector,arraylist,linkedlist有什么共同点及区别?
- LR笔试题整理
- [letecode java] Unique Paths
- AIX .tgz的安装包及登录日志查看
- 搭建最简单的SpringMVC框架(使用maven)
- How to remove the action suffix extension in Struts 2
- JS动态添加的属性Form不能提交的问题
- Php move_uploaded_file无法成功
- 换个角度看微软:每年饮料费2300万