#ArrayList、LinkedList和Vector 之间的比较:
Arraylsit | ArrayList是底层数组实现的,宽度为10,每次扩容容量增加0.5倍。查询速度快,但修改慢,线程不安全; |
---|---|
Linkdelist | Linkdelist是基于链表、栈、队列实现的。修改快,但查询慢(从第一个索引开始),线程不安全; |
Vector | Vector与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就有利于节约内存空间。