中易网

谁知道请说出JAVA中的vector,arraylist,linkedlist有什么共同点及区别?(高手答)

答案:2  悬赏:30  
解决时间 2021-02-07 08:21
谁知道请说出JAVA中的vector,arraylist,linkedlist有什么共同点及区别?(高手答)
最佳答案
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是索引的位置。
全部回答
vector已淘汰,直接无视, arraylist,linkedlist都具有list功能,实现方式不一样, 根据实际用途选择
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
g h/mol是个什么单位
帝都精品卫浴地址在什么地方,想过去办事
有一个人骂我“我嫌狗都听不懂我说话”,我该
放了半个多月的羊肉汤,还能喝吗
布鲁斯缝纫机销售处这个地址在什么地方,我要
仿古砖在使用填缝剂时表面脏了变黑怎么办?拜
中控门禁软件问题
在水里泡着..可以减肥么?
"@"读什么?
我win7电脑用的视频桌面,但是每次重启后图标
散华礼弥动画的结局~~
难道有不耗能量的麦克斯韦妖?疑惑~
黄竹径地址有知道的么?有点事想过去
什么是辩论观点
免费破解的百度竞价点击软件?
推荐资讯
云桥足浴怎么去啊,有知道地址的么
浅秋我想知道这个在什么地方
冯家湾地址在哪,我要去那里办事
SIM卡被锁后,PUK输入10次后也错了,卡是不是
人员借用与劳务派遣
有数量有钱数怎么算出化多少钱数量是120钱数6
海南农家乐美食苑在哪里啊,我有事要去这个地
现在178 17岁了~能长高么?骨垢线即将闭合
求周杰伦的全部歌曲或大多数歌曲的百度云资源
自己在家用电饭煲做蛋糕,样子还可以,就是发
中国联通开发区朝阳路社区店地址有知道的么?
现在的主流手机有哪些品牌
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?