类定义
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>,
Cloneable, java.io.Serializable
//Deque是队列接口,提供一个双端队列的访问方法实现
底层实现为双向链表
private static class Node<E> {
//节点定义
E item; //具体存储的数据
Node<E> next; //向后的指针
Node<E> prev; //向前的指针
}
LinkedList类中的数据存储
transient Node<E> first; //头指针,指向链表的第一个元素
transient Node<E> last; //尾指针,指向链表的最后一个元素
对应的构造器
public LinkedList() {
//没有初始化容积
}
- 创建Node对象,其中包含需要添加的元素值
- Node对象的next为null
- prev指向last
- last对象的next为新建对象Node
- last指向新建的Node对象
List总结
修改同时并发迭代访问的问题
需求:一个线程使用Iterator迭代访问集合中的元素,另外一个线程修改集合中的元素。临界资源为集合
public class T4 {
public static void main(String[] args)throws Exception {
List list = new ArrayList();
for(int i=0;i<5;i++)
list.add(i);
new Thread(()->{
System.out.println(Thread.currentThread().getName()+",begin....");
Iterator it=list.<