码迷,mamicode.com
首页 > 编程语言 > 详细

Java源码阅读(不断补充)

时间:2018-06-13 20:59:01      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:创建   sync   源码   move   list   并且   元素   imp   表结构   

java.util.LinkedList
  LinkedList是实现了List接口的双链表实现,拥有list的所有方法并且允许所有元素(包括null)。
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。
  需要注意的是LinkedList是非同步的,当大量线程并发地访问链表时,当至少有一个线程修改了列表的结构,那它必须进行外部同步(结构修改指的是
添加或删除一个或多个元素的操作,仅仅设置值不能算修改了列表结构)。一般通过封装在列表的一些对象实现同步。
  如果没有这样的对象存在,则列表应该使用Collections.synchronizedList方法进行同步。这个最好在创建列表的时候就使用,用于
防止偶然的非同步访问这个列表:
  List list = Collections.synchronizedList(new LinkedList(...));
通过调用iterator和ListIterator方法返回迭代器将会立马报错,当以下情况发生时:在创建迭代器后的任何时间对其结构进行修改
  除了通过迭代器自己的remove或add之外的任何方式,迭代器将抛出一个ConcurrentModificationException。因此不进行同步操作的话,当
面对并发时,迭代器会快速、彻底得失败。
public class LinkedList<E> extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
LikedList是一个实现了List接口的类,并能进行序列化操作(实现了java.io.Serializable接口)。

Java源码阅读(不断补充)

标签:创建   sync   源码   move   list   并且   元素   imp   表结构   

原文地址:https://www.cnblogs.com/stm32stm32/p/9179373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!