java中的单向链表和双向链表,jdk双向链表

  java中的单向链表和双向链表,jdk双向链表

  00-1010一、LinkedList II介绍。LinkedList的使用

  00-10101链表是Java集合框架中的一个重要实现。它的底层采用的是双链表结构,没有初始化大小,保持在前面或者后面加就好了。由于是基于链表的实现,所以在存储元素的过程中,不需要像ArrayList那样扩大容量。2 2linkedlist存储元素的节点需要额外的空间来存储前面和后面的引用。3LinkedList在链表的头部和尾部插入效率很高,但是在指定位置插入时效率一般。原因是插入需要定位在指定位置的节点的时间复杂度为O(N)。和4 ArrayList一样,LinkedList也支持空值和重复值。LinkedList也是非线程安全的集合类。5 LinkedList实现了两个接口,List和dequee,所以LinkedList有两个方法,一个是List接口的方法,一个是dequee接口的方法。6 LinkedList是一个实现dequee的dequee,所以LinkedList既可以用作队列,也可以用作堆栈。使用LinkedList作为栈时,使用pop()、push()和peek(),需要注意的是LinkedList的头是栈顶,链表的尾是栈底。7慢随机存取,快插入快删除。

  

目录

导入Java . util . iterator;导入Java . util . deque;导入Java . util . linked list;导入Java . util . queue;公共类linked list demo { public static void main(String[]args){ linked show();system . out . println(-);linked deque();system . out . println(-);linked listpop();} public static void linked show(){//创建队列queue integer queue=new linked list();//添加元素queue . Add(1);queue . offer(22);for(Integer Integer : queue){ system . out . println(验证 queue: integer 的add()和offer());}//获取但不移除这个队列整数的头a=queue . peek();//输出得到的元素,打印出元素的长度。核实一下长度,看看有没有变化。system . out . println( queue . peek(): a ,最后一个长度为: queue . size());//获取并移除此队列的头Integer bin teger=queue . poll();//输出得到的元素,打印出元素的长度。核实一下长度,看看有没有变化。system . out . println( queue . poll(): bin teger ,后跟: queue . size()));} public static void linked deque(){ DequeInteger deque=new linked list();//添加元素deque . Add(3);//在第一个位置添加元素deque . offer first(5);//在最后一个位置添加元素deque . offer last(7);for(integer integer 3360 deque){ system . out . println( deque新增验证: integer );}//取出不移除元素Integer K Integer=deque . peek first();integer min teger=deque . peek last();系统输出打印

 

  ln("deque.peek():" + kInteger + ">>>>" + mInteger + ",后长度为:" + deque.size());        // 取出并移除元素方法        Integer kInteger2 = deque.pollFirst();        Integer mInteger2 = deque.pollLast();        System.out.println("deque.poll():" + kInteger2 + ">>>>" + mInteger2 + ",后长度为:" + deque.size());    }    public static void linkedListPop() {        // 创建一个linkedlist集合        LinkedList<Integer> linkedList = new LinkedList<>();        // 添加元素        linkedList.push(9);        linkedList.push(7);        linkedList.push(5);        linkedList.push(3);        linkedList.push(1);        for (Integer integer : linkedList) {            System.out.println("linkedList.push():" + integer);        }        // 使用迭代器进行正向输出        Iterator<Integer> inIterator = linkedList.iterator();        while (inIterator.hasNext()) {            Integer integer = inIterator.next();            System.out.println(integer);        }        System.out.println("-------分割线-------");        // 使用迭代器反向输出结果        Iterator<Integer> inIterator1 = linkedList.descendingIterator();        while (inIterator1.hasNext()) {            Integer integer = inIterator1.next();            System.out.println(integer);        }        System.out.println("-------分割线-------");        // 使用for循环进行输出元素并移除        for (int i = 0; i <= 4; i++) {            Integer result = linkedList.pop();            System.out.println("linkedList.pop():" + result + ">------<" + ",后长度为:" + linkedList.size());        }    }}输出如下:

  

queue的add()和offer()验证:1queue的add()和offer()验证:22queue.peek():1,后长度为:2queue.poll():1,后长度为:1>----------一&&&二----------<deque新增验证:5deque新增验证:3deque新增验证:7deque.peek():5>>>>7,后长度为:3deque.poll():5>>>>7,后长度为:1>----------二&&&三----------<linkedList.push():1linkedList.push():3linkedList.push():5linkedList.push():7linkedList.push():913579-------分割线-------97531-------分割线-------linkedList.pop():1>------<,后长度为:4linkedList.pop():3>------<,后长度为:3linkedList.pop():5>------<,后长度为:2linkedList.pop():7>------<,后长度为:1linkedList.pop():9>------<,后长度为:0

 

  Process finished with exit code 0

  

到此这篇关于Java实现双端链表LinkedList的文章就介绍到这了,更多相关Java 双端链表LinkedList内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • ubuntu18.04安装jdk8,ubuntu中安装jdk
  • ubuntu18.04安装jdk8,ubuntu中安装jdk,Ubuntu 安装 JDK8 的两种方法(总结)
  • JDK1.8安装教程,安装配置jdk1.8
  • JDK1.8安装教程,安装配置jdk1.8,2020JDK1.8安装教程详解(一次就可安装成功)
  • ,,jdk8使用stream实现两个list集合合并成一个(对象属性的合并)
  • ,,IntelliJ IDEA之配置JDK的4种方式(小结)
  • java代理模式详解,java代理模式的典型例子,java代理模式(jdk proxy)
  • java中spi有什么作用,jdk的spi机制
  • java中spi有什么作用,jdk的spi机制,一文搞懂Java的SPI机制(推荐)
  • ,,详解JDK自带javap命令反编译class文件和Jad反编译class文件(推荐使用jad)
  • ,,JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版整理
  • ,,JAVA JDK8 List分组的实现和用法
  • idea配置tomcat和jdk,idea配置本地gradle
  • 简单叙述一下jdk环境变量的配置,jdk环境变量配置是干什么的
  • 建立Java开发环境,安装JDK,一般需要设置环境变量,在安装完JDK后,需要在环境变量中配置
  • 留言与评论(共有 条评论)
       
    验证码: