List集合就这么简单【源码剖析】

前一篇已经讲了Collection的总览:,介绍了一些基础知识。

现在这篇主要讲List集合的三个子类:

ArrayList

底层数据结构是数组。线程不安全

LinkedList

底层数据结构是链表。线程不安全

Vector

底层数据结构是数组。线程安全

这篇主要来看看它们比较重要的方法是如何实现的,需要注意些什么,最后比较一下哪个时候用哪个~

看这篇文章之前最好是有点数据结构的基础:,,

List集合就这么简单【源码剖析】

List集合就这么简单【源码剖析】

当然了,如果讲得有错的地方还请大家多多包涵并不吝在评论去指正~

一、ArrayList解析

List集合就这么简单【源码剖析】

首先,我们来讲解的是ArrayList集合,它是我们用得非常非常多的一个集合~

首先,我们来看一下ArrayList的属性:

List集合就这么简单【源码剖析】

根据上面我们可以清晰的发现:ArrayList底层其实就是一个数组,ArrayList中有扩容这么一个概念,正因为它扩容,所以它能够实现“动态”增长

1.2构造方法

我们来看看构造方法来印证我们上面说得对不对:

List集合就这么简单【源码剖析】

1.3Add方法

add方法可以说是ArrayList比较重要的方法了,我们来总览一下:

List集合就这么简单【源码剖析】

1.3.1add(E e)

步骤:

检查是否需要扩容

插入元素

首先,我们来看看这个方法:

public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyffs.html