码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据结构(栈和队列)


    Queue常用子类——PriorityQueue;Deque常用子类——LinkedList以及ArrayDeque;

    Queue有一个直接子类PriorityQueue。

    而Deque中直接子类有两个:LinkedList以及ArrayDeque。

        PriorityQueue:
    
    • 1

    从源码中,明显看到PriorityQueue的底层数据结构是数组,而无边界的形容,那么指明了PriorityQueue是自带扩容机制的,具体请看PriorityQueue的grow方法。

        LinkedList以及ArrayDeque:
    
    • 1

    从官方解释来看,ArrayDeque是无初始容量的双端队列,LinkedList则是双向链表。

    而我们还能看到,ArrayDeque作为队列时的效率比LinkedList要高。

    而在栈的使用场景下,无疑具有尾结点,不需判空的LinkedList更为高效。

    其实ArrayDeque和LinkedList都可以作为栈以及队列使用,但是从执行效率来说,ArrayDeque作为队列,以及LinkedList作为栈使用,会是更好的选择。

    PriorityQueue可以作为堆使用,而且可以根据传入的Comparator实现大小的调整,会是一个很好的选择。
    ArrayDeque可以作为栈或队列使用,但是栈的效率不如LinkedList高,通常作为队列使用。
    LinkedList可以作为栈或队列使用,但是队列的效率不如ArrayQueue高,通常作为栈使用。


    如何 区分栈和队列:
    Deque 说白了就是一个双端队列,可以从头部和尾部获取元素的值。
    在作为栈时,接口主要为push,pop
    作为队列时,接口主要为add,poll
    push的底层是 addFirst()即将元素添加到队列的首部。
    add的底层是 addLast()即将元素添加到队列的末尾。
    pop的底层是 removeFirst()即移除并获得队列首部的值。
    poll的底层是 pollFirst()即移除并获得队列首部的值。
    所以,从理论上来说栈和队列的方法可以混着用,只是添加或者获取队列的位置不同,本质上来说都是对一个双向队列进行存储,获取。

  • 相关阅读:
    详解TCP/IP协议第二篇:OSI参考模型详解
    约瑟夫环(循环列表实现)
    纯CSS 毛玻璃效果
    【CSDN竞赛】第九期解题报告
    linux mysql5.7.25_生产版本
    JavaScript|JavaScript 高级语法——详细汇总
    如何选择scrm系统源码?快鲸scrm系统源码有哪些优势?
    ssm+vue+elementUI 基于web的邮票鉴赏系统及实现-#毕业设计
    商业化广告--体系学习-- 4 -- 行业蓝图篇 -- 广告产品的变化与发展趋势
    Excel往Word复制表格时删除空格
  • 原文地址:https://blog.csdn.net/weixin_43783902/article/details/127699098
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号