ArrayList ,Vector和 LinkList 开发中的疑问 5C
1  ArrayList,Vector 和LinkList   开发中 哪个会使用的多
    2  ArrayList ,Vector,和LinkList 数据量少时 性能差不大,性能安全的Vector是否是小数据量下最合适的调用
    3  在金融公司,Vector是否会列为保证线程安全的唯一选项
    4  若以业务进行区分使用,ArrayList,Vector 和LinkList 分别适用于什么样的业务场景
    ps 个人所在项目小组,历史代码中都是随意调用,没有规律可言。往各位解惑

5个回答

1 一般通常情况下 arraylist 用的更多 而 vector 基本上没什么人用了 因为效率问题
2. 如果想要性能安全可以使用vector
3 不是 可以使用ConcurrentLinkedQueue 或者其他的
arrayList 基于数组
LinkList 是基于链表的
这些你可以去看源码的 都不难看懂

u011590297
北京-谢宇坤 现在应用都用集群部署了,每个请求转发到不同的机器,vector的同步是否还能保证其性能安全
一年多之前 回复

线程里用vector 其他开发用arraylist LinkList 带顺序,做队列

arraylist集合 本质上是数组,所以插入删除效率较低, LinkList集合 本质上是链表,插入删除效率高,但查询效率低,Vector 则是用于线程安全的集合,

u011590297
北京-谢宇坤 回复w172087242: 个人是在单线程下测试的,测试的结果可能不太准确。针对你提出的【大数据,高并发,多线程】的混合业务场景下,你会怎么去使用这几种集合呢
一年多之前 回复
lichen_5177
lichen_5177 回复u011590297: Vector相对比较老,如果你不是大批量操作,Vector跟ArrayList的性能问题根本不是问题,这两个集合都用,日常业务中看不出有明显效率差距,基于你是金融业务,建议使用Vector,ArrayList可能会出现线程安全问题.
一年多之前 回复
w172087242
little_how 回复u011590297: 再次就是如果你使用了多线程进行测试,那么你的测试量是多大呢?线程数是多少呢?总测试数据是千万还是亿级别呢?性能往往在达到瓶颈的时候才异常珍贵;所以要比较久要进行多维度的极限比较;比如一个吞吐量为10万的系统和一个吞吐量为1000万的系统,处理的业务量为100或1000,那么这两个系统的处理效率是没啥差别的,都是在能力之内,但是如果处理100万的业务,那么10万业务的系统,就会有大规模排队阻塞等,速度就会低下来。
一年多之前 回复
w172087242
little_how 回复u011590297: 其次就是你的测试标准么?由于线程安全是在多个线程之间才会发生的,所以在一个线程中测试的时候,锁的操作时只有一次的,因为锁是互斥的,对已经在门内的人,是不需要再进行加锁的
一年多之前 回复
w172087242
little_how 回复u011590297: 首先你需要理解什么时候才会发生并发,也就是线程安全问题;只有线程之间能够共享的变量才会发生线程安全,也就是,如果你的变量是方法级的变量,那么不需要考虑线程安全问题
一年多之前 回复
u011590297
北京-谢宇坤 1000条下,正常的add追加 这几个效率都差的不过。 刨除查询效率低的linkList,为什么现在开发普遍用ArrayList,不用Vector
一年多之前 回复

ArrayList数组结构,效率高于vector,考虑线程安全问题,建议使用vector,我现在erp系统中都是使用vector的,纸面说效率低,但是根本看不出来,LinkList需要消耗更多的内存,如果是插入数据较多建议还是使用LinkList.

lichen_5177
lichen_5177 回复u011590297: LinkList跟ArrayList是两种结构LinkList是链表结构,追加元素很快,这些都是在数据量较大情况下,一般正常业务无序考虑
一年多之前 回复
u011590297
北京-谢宇坤 我看了arrayList的源码,grow中对数据长度进行扩容【i + (i >> 1)】。常规的追加方式下,数据越大,arrayList应该会越快。linkList需要消耗更多的内存,其大数据量下正常的业务下的add 又不如arrayList,为何还要使用他呢
一年多之前 回复

Arraylist是有序,不唯一的集合

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!