LinkedList的全面说明:

1)LinkedList底层实现了双向链表和双端队列的特点

2)可以添加任意元素(可重复),包括null

3)线程不安全,没有实现同步

 

 

linkedList底层结构

LinkedList_双端队列

 

 

LinkedList添加的源码分析

linkedlist.add(1);

LinkedList_底层实现_02

 

 

LinkedList_底层实现_03

 

 

linkedlist.add(2);

LinkedList_底层实现_04

 

 

 

删除的源码分析:

 

linkedlist.remove(); // 这里默认删除的是第一个结点

LinkedList_双端队列_05

 

 

 

LinkedList_源码分析_06

 

 

 

ArrayList和LinkList的比较

LinkedList_双端队列_07

 

 

 

 

如何选择ArrayList和LinkedList: 
1)如果我们改查的操作多,选择ArrayList

2)如果我们增删的操作多,选择LinkedList

3)一般来说,在程序中,80%-90%都是查询,因此大部分情况下会选择ArrayList

4)在一个项目中,根据业务灵活选择,也可能这样,一个模块使用的是Arraylist,另
外一个模块是LinkedList.