ArrayList与LinkedList和Vector 使用上有什么区别?

#ArrayList、LinkedList和Vector 之间的比较:

ArraylsitArrayList是底层数组实现的,宽度为10,每次扩容容量增加0.5倍。查询速度快,但修改慢,线程不安全;
LinkdelistLinkdelist是基于链表、栈、队列实现的。修改快,但查询慢(从第一个索引开始),线程不安全
VectorVector与ArrayList咋使用上非常相似,扩容市增加一倍,线程安全 ,导致性能差效率低

ArrayList与LinkedList的区别:
1.对于随机访问个get和set,ArrayList优于Linkdelist,因为LInkedList要移动指针
2.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
若只对单条数据插入或删除,ArrayList的速度反而优于LinkedList。但若是批量随机的插入删除数据,LinkedList的速度大大优于ArrayList. 因为ArrayList每插入一条数据,要移动插入点及之后的所有数据。

ArrayList与Vector的区别:
1 Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
2 当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值