• 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

    明白了吗?

  • 相关阅读:
    Centos6.5下搭建nagios详解
    Centos6.5下升级Python版本
    Python生成随机密码
    配置apache使用https访问
    Irrlicht 论坛好贴 精选(不断补充中...)
    [原创]一个在Irrlicht中会常用的字符串转换函数
    [转]Scrolling Credits Code
    [原创]Irrlicht中的Texture透明色(colorkey)
    [原创]IrrLicht的GUI使用
    [转](C++) How to animate and move an entity
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12166801.html
Copyright © 2020-2023  润新知