欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java之LinkedList源码分析(第五篇:结点类)

程序员文章站 2022-04-03 19:34:59
...
    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;
        }
    }

LinkedList的结点类,定义在LinkedList类的内部,它是一个静态内部类,也是一个范型类,LinkedList对象就是通过持有Node对象组成的双向链表来保存我们要添加的元素对象

 

0、Node对象持有的三个实例变量

        E item;
        Node<E> next;
        Node<E> prev;

item是Node对象持有的元素对象,它的类型取决于参数类型E,我们添加的元素,就会某一个Node对象持有的item负责保存

next是Node对象持有的指向下一个Node对象的实例变量

prev是Node对象持有的指向上一个Node对象的实例变量

通过prev、next就可以创造一个通过引用而实现的双向链表

 

1、这是Node的构造方法

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

通过创建Node时,传入的参数,完成双向链表的指向

传入的局部变量prev会成为当前Node对象持有的prev指向的上一个结点对象

传入的局部变量next会成为当前Node对象持有的next指向的下一个结点对象

而元素对象element则直接交给Node对象持有的item负责保存

Java之LinkedList源码分析(第五篇:结点类)

 

 

相关标签: Java 综合