Java 之LinkedList源码简单分析

LinkedList源码分析

  • 前言
  • 一、数据结构
  • 二、初始化
  • 三、添加元素
  • 四、添加元素到指定位置
  • 五、获取元素
  • 六、删除元素
  • 总结
  • 参考文献

前言

LinkedList是我们常用的一个容器,简单分析LinkedList的源码,可以更好的了解LinkedList容器,了解它的数据结构、初始化、添加元素是如何实现。

一、数据结构

LinkedList 的底层是一个带头尾指针的双向链表,双向链表通过一个私有静态内部类来定义。

	private static class Node<E> {
   
        E item;
        Node<E> next;
        Node<E> prev;

        Node(Node<E> prev, E element, Node<E> next) {
   
            this.item = element;
            this.next = next;
            this.prev = prev;
        }
    }
	transient int size = 0;

    /**
     * Pointer to first node.
     */
    transient Node<E> first;

    /**
     * Pointer to last node.
     */
    transient Node<E> last;

二、初始化

1)初始化一个空链表(不带头节点)

/**
     * Constructs an empty list.
     */
    public LinkedList() {
   
    }

2)将一个容器初始化为LinkedList容器

public LinkedList(Collection<? extends E> c) {
   
        this();
        addAll(c);
    }
public boolean addAll(Collection<? extends E> c) {
   
        return addAll(size, c);
    }
public boolean addAll(int index, Collection<? extends E> c) {
   
        checkPosition

你可能感兴趣的:(#,Java基础知识,java,LinkedList,List,双向链表)