List接口中常用实现类的对比:
List接口中的三个常用实现类(ArrayList,LinkedList,Vector)的异同:
相同:
- 这三个类都继承了List接口
- 这三个类中存储的数据的特征相同:都是存储有序的,可重复的数据
差异:
- ArrayList类作为List接口的主要实现类 : 线程不安全的,效率高,底层是通过Object[] elementDate进行存储的
- LinkedList类 : 底层使用双向链表进行存储,如果要对集合中的数据进行频繁的插入和删除操作时使用此类创建对象来容纳数据的效率要比使用ArrayList集合的效率高
- 作为List接口的古老实现类,vector类比List接口还要古老(List接口是jdk1.2中出现的,但是我们的vector类在我们的jdk1.0中就出现了),只不过当List接口出现以后java官方将vector类也归到了List接口中,我们的Vector类是线程安全的,效率低,底层也是通过Object[] elementDate进行存储的
总结:
- List接口中存储的数据时有序的,不可重复的
- ArrayList类底层的Object数组名为elementDate
- Vector类底层的Object数组名为elementDate
- String,StringBuffer,StringBuilder类底层的数组名都为value