问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Vector和ArrayList哪一个更好求解

发布网友 发布时间:2022-03-29 13:01

我来回答

1个回答

热心网友 时间:2022-03-29 14:31

所有从API的角度来看这两个类非常相似。但他们之间也还是有一些主要的区别的。
  同步性  Vector是同步的。这个类中的一些方法保证了Vector中的对象是线程安全的。而ArrayList则是异步的,因此ArrayList中的对象并不是线程安全的。因为同步的要求会影响执行的效率,所以如果你不需要线程安全的集合那么使用ArrayList是一个很好的选择,这样可以避免由于同步带来的不必要的性能开销。
  数据增长  从内部实现机制来讲ArrayList和Vector都是使用数组(Array)来控制集合中的对象。当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组目前的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度,ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以如果你要在集合中保存大量的数据那么使用Vector有一些优势,因为你可以通过设置集合的初始化大小来避免不必要的资源开销。
  使用模式  在ArrayList和Vector中,从一个指定的位置(通过索引)查找数据或是在集合的末尾增加、移除一个元素所花费的时间是一样的,这个时间我们用O(1)表示。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长:O(n-i),其中n代表集合中元素的个数,i代表元素增加或移除元素的索引位置。为什么会这样呢?以为在进行上述操作的时候集合中第i和第i个元素之后的所有元素都要执行位移的操作。这一切意味着什么呢?
  这意味着,你只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是其他操作,你最好选择其他的集合操作类。比如,LinkList集合类在增加或移除集合中任何位置的元素所花费的时间都是一样的?O(1),但它在索引一个元素的使用缺比较慢-O(i),其中i是索引的位置.使用ArrayList也很容易,因为你可以简单的使用索引来代替创建iterator对象的操作。LinkList也会为每个插入的元素创建对象,所有你要明白它也会带来额外的开销。
  最后,建议您使用一个简单的数组(Array)来代替Vector或ArrayList。尤其是对于执行效率要求高的程序更应如此。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 梦见和家人一起经历大洪水,老妈找不到了 晚上做梦有很多的水第二天会发生什么事 解梦的进 连着两天梦到洪水,火山爆发,沙土覆盖怎么回事? 微信申诉失败人工处理电话 微信被盗怎么办人工客服电话 微信申诉电话人工客服电话 ArrayList和Vector的区别,HashMap和Hashtable的区别。 大商购物卡怎么使用 开封有哪些高档商场 大商集团郑州新玛特购物广场有限公司怎么样? 大商锦州新玛特购物广场有限公司怎么样? 大商集团郑州新玛特购物广场有限公司的发展 大商集团商丘新玛特购物广场有限公司怎么样? 大商购物网络平台怎么样?是真的吗 大商是国企么 大商集团的麦凯乐购物卡可以全国通用吗? 有一张大商集团的购物卡,平时离着新玛特比较远,... 大商集团购物卡使用范围 大商集团旗下的购物商场有什么 蒹葭改写散文 蒹葭改写 蒹葭改写600字 诗经 蒹葭现代文改写 蒹葭改写成短文,100多字,急求,谢谢 把蒹葭改写成小故事,200字左右 谁能帮我改编《蒹葭》啊 用现代汉语改写《蒹葭》 改写蒹葭 蒹葭改为文言文 谁能把诗经的蒹葭帮我改成现代诗急用 蒹葭改写成诗怎么改 急啊 蒹葭改为散文 请把《蒹葭》改写成小故事. 改编"蒹葭"改编成现代诗(句式要一样) 蒹葭 改写成散文 改写《诗经~蒹葭》为一首五言古体诗歌 将蒹葭改写成记叙文。。 list和vector的区别 写给老师的一封信 50字