List实现类中的ArrayList、Vector、LinkedList

首先,List接口继承于Collection接口,其中的所有方法都被继承,而Collection是无序、无下标,元素不可重复的,List是有序,有下标,元素可以重复,所以,List就有一些自己独有的方法。和数组相比较更加灵活,方便。

书写格式:

List<> list = new ArrayList<>();可以把接口的好处5体现出来,如果ArrayList()不满足需求,直接更换就可以。

接口的好处:

1.程序的耦合度降低

2.更自然的使用多态

3.设计与实现完全分离

4.更容易搭建程序框架

5.更容易更换具体实现

ArrayList:

数据结构实现,查询快、增删慢

JDK1.2版本,运行效率快、线程不安全。

构造方法:

1.

new ArrayList();      JDK7及之前,无参构造方法直接创建长度为10的Object数组,用还是不用,数组就在那里,(占内存)
                                JDK8之后,无参构造方法直接创建长度为0的数组,如果不用,不占空间,只有当真正插入元素时,再                                           分配数组空间(10个空间)

2.new ArrayList(Collection<? extends E> c);构造一个包含指定集合的元素的列表,它们在集合的迭代器返回的顺序中返回。

3.new ArrayList(int initialCapacity);用指定的初始容量构造一个空列表。

Vector:

I. 数组结构存储,查询快,增删慢。

II. JDK 1.0发布,执行效率慢,线程安全。

LinkedList:

I. 链表(链接列表)结构存储,查询慢、增删快。

II. 了解:Queue接口:队列、双端队列

III. 了解:栈结构Last In First Out(后进先出)

IV. 了解:队列结构First In First Out(先进先出)

追其源码可以得出,LinkedList集合存储的对象都是连接在一起,上一个对象存储了指向下一个对象的地址,下一个对象存储了上一个对象和再下一个对象的地址,以此来相互链接。

发布了24 篇原创文章 · 获赞 69 · 访问量 1170

猜你喜欢

转载自blog.csdn.net/S9264L/article/details/104731539