package javacore; /** * @author baoyou E-mail:curiousby@163.com * @version 创建时间:2015年9月7日 下午12:31:13 des: */ public class LinkedList<E> { public static class Node<E> { public E obj; public Node<E> prev = null; public Node<E> next = null; Node(Node<E> prev, E element, Node<E> next) { this.obj = element; this.next = next; this.prev = prev; } } transient int size = 0; transient Node<E> first; transient Node<E> last; public void linkLast(E e) { final Node<E> l = last; final Node<E> newNode = new Node<>(l, e, null); last = newNode; if (l == null) first = newNode; else l.next = newNode; size++; } E unlink(Node<E> x) { final E element = x.obj; final Node<E> next = x.next; final Node<E> prev = x.prev; if (prev == null) { first = next; } else { prev.next = next; x.prev = null; } if (next == null) { last = prev; } else { next.prev = prev; x.next = null; } x.obj = null; size--; return element; } public boolean add(E e) { linkLast(e); return true; } public boolean remove(E e) { if (e == null) { for (Node<E> x = first; x != null; x = x.next) { if (x.obj == null) { unlink(x); return true; } } } else { for (Node<E> x = first; x != null; x = x.next) { if (e.equals(x.obj)) { unlink(x); return true; } } } return false; } public E getFirst() { return first.obj; } public E getLast() { return last.obj; } public static void main(String[] args) { LinkedList ll = new LinkedList<>(); ll.add(1); ll.add(2); System.out.println(ll.getFirst() + " --- " + ll.getLast()); ll.remove(2); System.out.println(ll.getFirst() + " --- " + ll.getLast()); } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
相关推荐
LinkedList的部分源码解析 包括部分常用的方法: add() ,remove(),get(),set()
ArrayList-LinkedList-源码.rar
计算机后端-Java-Java核心基础-第24章 集合01 15. LinkedList的源码分析.avi
LinkedList源码
Map+List+ArrayList+LinkedList Java源代码,适合初学者
学习linkedList源码,数据结构是链表。模仿LinkedList集合自己写一个
LinkedList源码分析_016.pdf
第三章 LinkedList源码解析一、对于LinkedList需要掌握的八点内容LinkedList的创建:即构造器往LinkedList中添加对象:即add
这是我从JDK中拿出的Arraylist,Vector,LinkedList源码,自己看源码的时候弄出来的,并写了一点自己的分析,仅供源码分析者使用
LinkedList源码分析,java作业,主要是对rar包中的LinkedList分析
单双链表的创建,节点的添加与删除,链表逆序,链表遍历。
源码解析jdk7.0集合:LinkedList的底层实现原理.pdf
主要给大家介绍了关于Java基于JDK 1.8的LinkedList源码的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
能学到什么:ArrayList的源码分析,自动扩容和自动缩容的源码分析,相关参数的深度解析,从是什么,为什么,怎么做三个角度进行讲解,用通俗易懂的白话进行介绍,LinkedList和Vector以及ArrayList的区别以及使用场景...
和数组一样,LinkedList 也是一种线性数据结构,但它不像数组一样在连续的位置上存储元素,而是通过引用相互链接。 LinkedList 中的每一个元素都可以...Node 是 LinkedList 类的一个私有的静态内部类,其源码如下所示:
主要介绍了java LinkedList源码详解及实例的相关资料,需要的朋友可以参考下
List-LinkedList 单链表就地反转 的代码的一种实现。
ArrayList、LinkedList、Vector区别简介。
Java 中Linkedlist类的源代码Java 中Linkedlist类的源代码Java 中Linkedlist类的源代码Java 中Linkedlist类的源代码
非常简单的Java LinkedList 应用实例