-
Vector和ArrayList的区别:
相同点:都实现了List接口,都是有序的,按照下标去取数据,可以重复存放数据。
不同点:
(1)同步性
Vector是线程安全的,用synchronization实现线程安全,而ArrayList是线程不安全的,但如果只有一个线程访问到集合,那最好使用的是ArrayList,因为它不考虑线程安全,效率会高些;如果有多个线程访问集合是,那最好使用Vector,因为不需要我们再去考虑编写线程安全的代码。
(2)数据容量增长
两者都有一个初始容量大小,采用线程连续储存空间,当存储的元素的个数超过了容器时,就需要增加二者的存储空间,Vector增长原来的一倍,ArrayList增长原来的0.5倍。 -
ArrayList和LinkedList的区别:
ArrayList采用的是数组形式存储对象的,这种方式是将对象放在连续的位置,查找容易,但是插入删除麻烦。
LinkedList采用的是将对象存放再一个独立空间中,每一个空间保留一个链接的索引,插入删除容易,但是查找麻烦。
ArrayList
·实现方式:数组
·超出容器的则扩容50%
·使用sysytem、arraycopy()复制到新的数组
·默认容量为10
·Get和Set的性能高,但add、remove性能不好
LinkedList
·实现方法:双向循环链表
·无容量限制
·Get和Set的性能不好,add、remove性能好
Vector
·与ArrayList类似
·线程安全
·自动增长一倍的数组长度