java LinkedList的实例详解

 更新时间:2017年09月01日 10:10:07   投稿:lqh  
这篇文章主要介绍了java LinkedList的实例详解的相关资料,通过本文希望大家能彻底了解掌握这部分内容,需要的朋友可以参考下

java LinkedList的实例详解

站在Java的角度看,玩队列不就是玩对象引用对象嘛!

实例代码: 

public class LinkedList<E> implements List<E>, Deque<E> { 
 Node<E> first; 
 Node<E> last; 
 int size; 
 
 public boolean add(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++; 
    modCount++; 
    return true; 
  } 
 
 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; 
    } 
  }  
} 

 单链表反转:

/**  
   * 递归,在反转当前节点之前先反转后续节点  
   */  
  public static Node reverse(Node head) {  
    if (null == head || null == head.getNextNode()) {  
      return head;  
    }  
    Node reversedHead = reverse(head.getNextNode());  
    head.getNextNode().setNextNode(head);  
    head.setNextNode(null);  
    return reversedHead;  
  }  
  
  /**  
   * 遍历,将当前节点的下一个节点缓存后更改当前节点指针  
   *  
   */  
  public static Node reverse2(Node head) {  
    if (null == head) {  
      return head;  
    }  
    Node pre = head;  
    Node cur = head.getNextNode();  
    Node next;  
    while (null != cur) {  
      next = cur.getNextNode();  
      cur.setNextNode(pre);  
      pre = cur;  
      cur = next;  
    }  
    //将原链表的头节点的下一个节点置为null,再将反转后的头节点赋给head    
    head.setNextNode(null);  
    head = pre;  
      
    return head;  
  } 

 对于数组问题,一般我们要新建数组,必要时移动下标

以上就是java LinkedList 的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • MyBatis解决Update动态SQL逗号的问题

    MyBatis解决Update动态SQL逗号的问题

    这篇文章主要介绍了MyBatis解决Update动态SQL逗号的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • Java运行时数据区域(内存划分)的深入讲解

    Java运行时数据区域(内存划分)的深入讲解

    听说Java运行时环境的内存划分是挺进BAT的必经之路,这篇文章主要给大家介绍了关于Java运行时数据区域(内存划分)的相关资料,需要的朋友可以参考下
    2021-06-06
  • Java数据结构与算法学习之循环链表

    Java数据结构与算法学习之循环链表

    循环链表是另一种形式的链式存储结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。本文将为大家详细介绍一下循环链表的特点与使用,需要的可以了解一下
    2021-12-12
  • JAVA annotation入门基础

    JAVA annotation入门基础

    以下是JAVA annotation入门基础,新手朋友们可以过来参考下。希望对你有所帮助
    2013-08-08
  • 浅谈二分法查找和原始算法查找的效率对比

    浅谈二分法查找和原始算法查找的效率对比

    这篇文章主要介绍了浅谈二分法查找和原始算法查找的效率对比,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • SpringBoot与SpringSecurity整合方法附源码

    SpringBoot与SpringSecurity整合方法附源码

    这篇文章主要介绍了SpringBoot与SpringSecurity整合,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • spring aop底层原理及如何实现

    spring aop底层原理及如何实现

    这篇文章主要介绍了spring aop底层原理及如何实现,帮助大家更好的理解和学习使用spring aop,感兴趣的朋友可以了解下
    2021-04-04
  • Springboot 如何指定获取自己写的配置properties文件的值

    Springboot 如何指定获取自己写的配置properties文件的值

    这篇文章主要介绍了Springboot 如何指定获取自己写的配置properties文件的值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 浅谈Java中生产者与消费者问题的演变

    浅谈Java中生产者与消费者问题的演变

    这篇文章主要介绍了浅谈Java中生产者与消费者问题的演变,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 详解Java的位运算

    详解Java的位运算

    这篇文章主要介绍了详解Java的位运算,程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作,需要的朋友可以参考下
    2023-04-04

最新评论