zoukankan      html  css  js  c++  java
  • Java源码阅读(不断补充)

    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接口)。

  • 相关阅读:
    常见RGB透明度对照表在这
    Android节假日图标动态替换方案
    用两个栈实现队列
    从头到尾打印链表 (链表/栈)
    MySQL常用函数
    找出数组中重复的数字
    两数之和
    java的list的几种排序写法整理(sort的用法)
    Java知识目录
    通过关键词来推荐话题
  • 原文地址:https://www.cnblogs.com/stm32stm32/p/9179373.html
Copyright © 2011-2022 走看看