为什么ArrayDeque比LinkedList更好

2023-12-12

我试图理解为什么Java的ArrayDeque比Java的LinkedList更好因为它们都实现了 Deque 接口。

我几乎没有看到有人在他们的代码中使用 ArrayDeque。如果有人更深入地了解 ArrayDeque 的实现方式,那将会很有帮助。

如果我理解了它,我就会更有信心使用它。我无法清楚地理解 JDK 实现以及它管理头引用和尾引用的方式。


链接结构可能是最糟糕的结构,每个元素上都有缓存未命中而进行迭代。最重要的是,它们消耗更多的内存。

如果您需要添加/删除两端,ArrayDeque 明显优于链表。对于循环队列来说,随机访问每个元素也是 O(1)。

链表唯一更好的操作是在迭代期间删除当前元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么ArrayDeque比LinkedList更好 的相关文章

  • 内存不一致与线程交错有何不同?

    我正在编写一个多线程程序 正在研究是否应该使用volatile对于我的布尔标志 关于并发性的文档 oracle Trail 没有解释任何关于memory consistency errors以外 当不同的线程有内存一致性错误时 就会发生内存
  • 用Java将图像添加到数据库

    我正在尝试将图像添加到 mysql 数据库中的 BLOB 字段 图像大小将小于 100kb 但是我遇到了问题 想知道将这些数据添加到数据库的更好方法是什么 com mysql jdbc MysqlDataTruncation 数据截断 第
  • Cassandra Pojo Sink Flink 中的动态表名称

    我是 Apache Flink 的新手 我正在使用 Pojo Sink 将数据加载到 Cassandra 中 现在 我在以下命令的帮助下指定表和键空间名称 Table注解 现在 我想在运行时动态传递表名称和键空间名称 以便可以将数据加载到用
  • 在 Java 中实现排列算法的技巧

    作为学校项目的一部分 我需要编写一个函数 该函数将接受整数 N 并返回数组 0 1 N 1 的每个排列的二维数组 该声明看起来像 public static int permutations int N 该算法描述于http www usn
  • 如何将 Hamcrest 匹配器应用于被测类的属性?

    有没有办法构建一个组合的 Hamcrest 匹配器来测试对象和该对象的属性 伪代码 both instanceof MultipleFailureException class and pseudo code starts adapt ne
  • 如何在 Java 9 中使用新的 BeanInfo 注解

    JEP 256 BeanInfo 注释 http openjdk java net jeps 256为JavaBean http download java net java jdk9 docs api java beans JavaBea
  • 通过 RMI 的服务器,无需注册

    我有一个可以通过 RMI 连接的服务对象 目前我正在这样做 Server Registry r LocateRegistry createRegistry 1234 r bind server UnicastRemoteObject exp
  • 如何找出已使用的 JAR?

    在更大的项目中 我们可能会使用大量的 JAR 如何找出项目 而不是整个项目 中的某个模块 包正在使用哪些 JAR 有什么工具 技术等吗 较大的项目通常使用类似的构建工具maven http maven apache org or ant h
  • Tomcat:具有强密码的 TLSv1.2 不起作用

    我安装了Tomcat 7 配置了对 TLSv1 2 的支持在端口 8443 上 我的连接器配置 协议 org apache coyote http11 Http11NioProtocol SSLEnabled true 方案 https 安
  • 如何使 java.text.NumberFormat 将 0.0d 格式设置为“0”而不是“+0”?

    需要带符号的结果 0 0d 除外 IE 123 45d gt 123 45 123 45d gt 123 45 0 0d gt 0 我调用format setPositivePrefix 在 DecimalFormat 的实例上 强制结果中
  • 如何在 Java 中用 \n 替换 \\n

    我有一个string test first n middle n last 现在我想更换所有 n by n 我试过了test replaceAll n n and test replaceAll n n 但它们不起作用 有人有解决办法吗 T
  • 具有 JPA、PostgreSQL 和 NULL 值的 JodaTime

    我试图将 JPA 的 JodaTime DateTime 字段保留到 PostgreSQL 但遇到了指向数据库 NULL 值的空指针的问题 我正在使用 NetBeans 7 beta 2 IDE 持久性实现是 EclipseLink 2 2
  • 正则表达式或用单个空格替换多个空格的方法

    你能告诉我有没有办法在java或spring中用单个空格替换多个空格 有相同的 stringUtils 函数吗 like 1 test test test test 2 test test test test 3 test test tes
  • kafka消费端Offsets的一致性

    我有复制因子为 3 的卡夫卡主题min insync replicas 2 一个向该主题发送 X 条消息的生产者acks all 一段时间后 1 分钟内 在所有消息发送到主题后 将使用 java kafka 客户端为此主题创建新的消费者 使
  • hibernate session 的 get() 和 load() 方法在获取方面有什么区别?

    get 和 load 方法有什么区别 关于数据获取方法 public static void main String args SessionFactory factory new Configuration configure build
  • 如何在生产中安全地更改会话 cookie 域或名称?

    我们最近意识到我们的会话 cookie 正在被写入我们网站的完全限定域名 www myapp com 例如 MYAPPCOOKIE 79D5DB83 domain www myapp com 我们希望将其切换为可以跨子域共享的cookie
  • Guava MultiSet 与 Map?

    我对Multiset的理解是一个带有频率的集合 但是我总是可以使用Map来表示频率 还有其他原因使用Multiset吗 优点Multiset
  • SWIG C 函数指针和 JAVA

    我有一些 C 代码 其中一个方法有一个函数指针作为参数 我正在尝试在我的 Android 应用程序中使用 C 代码 我决定使用 SWIG 来完成生成我需要的 java 文件的所有工作 一切都适用于常规函数 没有函数指针作为参数的函数 但我不
  • 使用从 java 程序调用的 Windows 命令提示符将具有多个连续空格的字符串作为参数传递给 jar 文件

    我想使用在另一个java程序中调用的Windows命令提示符将带有多个连续空格的字符串作为参数传递给jar文件 java 文件是这样的 它打印它的所有参数 package src public class myClass public st
  • JAAS keytab 配置的相对路径

    我有一个系统 其中 NET 客户端使用 Kerberos 针对 Java 服务器进行身份验证 一切正常 但我正在尝试改进服务器配置 目前一个keytab根目录中需要文件C 因为我的jaas配置文件看起来像这样 Server com sun

随机推荐

  • 隐藏相机预览但仍收到预览回调

    我想在我的应用程序中显示过滤后的相机预览 我为此使用 Camera setPreviewCallback 我设法处理回调数据并在 OpenGL 视图中显示过滤后的图像 但我不知道如何隐藏原始相机预览并仍然接收预览回调 使表面视图 消失 或
  • Matlab 与 Mathematica,特征向量?

    function H calcHyperlinkMatrix M r c size M H zeros r c for i 1 r for j 1 c if M j i 1 colsum sum M 2 H i j 1 colsum j e
  • Expressjs bodyParser 和 connect-form

    我正在上传图像连接形式 但如果我使用它就不起作用bodyParser 相反 如果我不使用 bodyParser 我就无法上传文件 我怎样才能让他们一起玩 这是我的配置 app configure function app register
  • 防止 bash 脚本中的通配符

    我正在尝试编写一个对选定文件进行操作的脚本 bin bash ytest lastArgNo sPattern lastArgNo echo operating on sPattern do operation on sPattern fo
  • 与类加载相关的战争部署错误

    当我部署我的战争文件并运行它时 它会给出类似的错误 org springframework instrument classloading tomcat TomcatInstrumentableClassLoader Jan 6 2011
  • 将 ggplot 色阶渐变应用于部分数据

    我有一个关于应用 ggplot 的色阶渐变的问题 我有数据集 其中响应变量是连续变量 包括正数和负数 自变量是许多独立站点 我试图以这样的方式绘制数据 以便可以在背景中绘制所有数据 然后将色阶渐变应用于覆盖数据负范围的响应数据 这是迄今为止
  • 循环比休息更重要?

    我想在用户单击我的按钮时执行简单的代码 第一 将光标更改为 等待 下一步 执行循环 循环完成后 将光标更改回 默认 我写了这段代码 HTML
  • 对 RGB 值使用逻辑位移位

    当谈到按位逻辑时 我有点天真 我有一个可能是一个简单的问题 基本上 如果我有这个 是 ActionScript 但可以应用于多种语言 var color uint myObject color var red uint color gt g
  • 有没有好的 Markdown Javascript 库或控件? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想建立一个网站 用户可以
  • text() R 函数 - 如何更改单个单词的字体?

    text x y font 2 text 更改整个 文本 的字体 但是是否可以更改 文本 中单个单词的字体 Yep plot new text 0 5 0 5 expression paste bold bold not bold 看一眼
  • Ada:包装概念[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 这是我之前的帖子的后续内容 Ada 了解私有类型并了解包装 一个实现Rectangular类型是使用一种实现来制作的 即Rectangular Method 1此实现需要一个规范文件和一个
  • 我如何在 CSS 中使用自定义字体

    为了使用浏览器不支持的自定义字体 我可以尝试哪些选项 更新 截至 2015 年 最好的选择是使用 CSS3 font face 几乎所有地方都支持它 Google Fonts 平台上有很好的例子 正确的知道可能最好的选择是 cufon ht
  • 安装声称已成功,但在设备上找不到应用程序

    Xcode 给了我这条消息 无法找到已安装的应用程序安装声称有 成功 但在设备上找不到应用程序 捆绑包 ID 无效的 我刚刚开始使用 Pod 我该如何解决 我在通过 XCode 11 Beta 4 在 iOS 13 上测试 Cordova
  • 如何在Chef客户端上设置节点属性?

    我正在使用厨师 客户食谱将机器配置为厨师客户端 创建此客户端时如何配置节点属性 我不想做knife node edit 我的目标是在创建此节点时设置一些节点属性 可能是通过向 JSON 文件添加一些内容 UPDATE 我正在创建数百个将使用
  • Plotly:如何在plotlyexpress中找到趋势线系数?

    如何在plotlyexpress中找到趋势线的系数 例如 我使用下面的代码来绘制趋势线 但现在我想知道系数 import plotly express as px px scatter df x x data y y data trendl
  • 计算日期范围内的天数?

    我有一个这样的查询 SELECT COUNT AS amount FROM daily individual tracking WHERE sales YES AND daily individual tracking date BETWE
  • Mac Automator - 合并 PDF 文件,保存在同一文件夹中

    我正在使用 Automator 合并 PDF 文件 但无法弄清楚如何自动将生成的文件保存到同一文件夹中 相反 它会询问我将文件放在哪里 我将其用作服务 这是我现有的工作流程 1 服务在 任何应用程序 中接收选定的 PDF 文件 2 合并PD
  • C# 中只有 Date 类型 - 为什么没有 Date 类型?

    在我们的 C 项目中 我们需要表示没有时间的日期 我知道的存在DateTime但是 它也包含一天中的某个时间 我想明确指出某些变量和方法参数是基于日期的 因此我不能使用DateTime Date财产 解决这个问题的标准方法是什么 为什么没有
  • maxlength 在 ckeditor angularjs 指令的文本区域中不起作用

    我已经使用 ckeditor 插件在 angularjs 中创建了一个应用程序 我已经为 ckeditor 创建了一个指令 该应用程序工作正常 但问题是我需要将最大字符长度设置为 50 所以我把maxlength 50 但它不起作用 谁能告
  • 为什么ArrayDeque比LinkedList更好

    我试图理解为什么Java的ArrayDeque比Java的LinkedList更好因为它们都实现了 Deque 接口 我几乎没有看到有人在他们的代码中使用 ArrayDeque 如果有人更深入地了解 ArrayDeque 的实现方式 那将会