zoukankan      html  css  js  c++  java
  • 85 容器(十二)——队列与栈:LinkedList的光芒万丈

    队列

    队列就是先进先出的一种数据结构。java提供了一个Queue结构用来表示队列。这个接口中提供了一些方法,用于对队列中的元素进行操作:

    offer(obj):从队尾存入一个元素

    poll():从队首取出一个元素

    peek():(中译:偷窥,一瞥)从队首获取一个元素,但不从队列中删除它

    在集合中,LinkedList就实现了Queue接口,所以可以吧LinkedList作为一个队列使用,相应地任何一个LinkedList对象都具有以上三个方法。

    双向队列

    双向队列即接口Deque(译作:双向队列),它继承自Queue,这意味着它拥有Queue接口的三个方法,除此之外,它还有自己的offerFirst/offerLast、pollFirst/pollLast、peekLast/peekFirst

    栈即先进先出的一种数据结构,把栈想象成一个弹夹,弹夹里有弹簧,我们通过push推入元素,通过pop(译作:弹出)将栈顶的元素弹出来。

    这种结构可以通过双向队列就来实现。在双向队列中,除了以上的6种方法外,还提供了push(obj)与pop()方法来添加与删除元素。用来表示当前的LinkedList正作为一个栈来使用。

    总结

    无论是队列、双向队列和栈,它们都通过LinkedList来实现,所以一个LinkedList对象中,同时拥有push pop poll offer add get等等方法,但它不作为匿名类时能使用哪些方法,全看它的引用类型是什么。

    如是Queue类型,那能使用poll/offer

    如是Deque类型,那就能使用poll/offer/push/pop

    明白了吗?

  • 相关阅读:
    中煜软件,数据库删除凭证
    excel vba获取拼音
    windows server 2012 R2 远程桌面授权模式尚未配置
    用C语言实现窗口抖动
    java修饰符
    Java对象和类
    Java基本语法
    Java开发环境笔记
    我的第一个Java程序和Java简介
    笔记本如何设置插入USB鼠标自动禁用触摸板
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12166801.html
Copyright © 2011-2022 走看看