LinkedList 为同一功能提供了多种方法 - 为什么? [复制]

2024-03-18

我正在检查Java.util.LinkedList类,发现Linked List类提供了几个方法

public void addFirst(E e) 

public boolean offerFirst(E e)

public void push(E e)

所有这 3 个方法都将一个元素添加到列表的头部。 那么为什么相同的功能需要不同的实现呢?

是不是因为 推送适用于堆栈和

OfferFirst – 出队

addFirst——链表

或者其他一些基本原理?

请在这里分享一些见解。谢谢


这些实施于LinkedList由于合同Deque界面。

And the javadocs http://docs.oracle.com/javase/8/docs/api/java/util/Deque.html for Deque清楚地解释差异:

无效addFirst(E e)

如果可以在不违反容量限制的情况下立即执行此操作,则在此双端队列的前面插入指定的元素。当使用容量受限的双端队列时,通常最好使用方法 OfferFirst(E)。

布尔 OfferFirst(E e)

在此双端队列的前面插入指定的元素,除非它违反容量限制。当使用容量受限的双端队列时,此方法通常优于 addFirst(E) 方法,后者只能通过抛出异常来插入元素失败。

The ArrayBlockingQueue class (javadocs https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ArrayBlockingQueue.html) 是有界队列实现的示例,它实现Deque.

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

LinkedList 为同一功能提供了多种方法 - 为什么? [复制] 的相关文章

随机推荐

  • C# (.NET) 中是否有更好的 Web 浏览器控件?

    我需要 JavaScript 在我的应用程序中几乎完美地工作 应该能够访问 Web 内容并让用户控制它 但是 webbrowser 组件会在 Internet Explorer 的单独实例 应用程序中弹出新窗口 并且 dotBrowser
  • 整合 ASP.NET MVC 控制器依赖关系 (StructureMap)

    我正在查看我网站中的控制器 它们的大多数构造函数如下所示 public SomeController IServiceOne serviceOne IServiceTwo serviceTwo ILoggingService logging
  • 在 Kafka 中设计生产者和消费者组件

    我在用Kafka and Zookeeper作为我的数据管道的主要组件 该管道每秒处理数千个请求 我在用Samza作为我需要对数据进行小型转换的实时数据处理工具 我的问题是我的一位消费者 比方说ConsumerA 消耗了几个主题Kafka并
  • 创建多个 csv 文件并使用 Rails 将所有内容下载到一个 zip 存档中

    我正在寻找一种方法来创建多个 csv 文件 并在 Rails 应用程序的一个请求中将它们作为一个 zip 存档下载 为了构建存档 我使用 ruby zip gem 只需使用 Rails 内置函数 send data 即可下载它 我遇到的问题
  • 如何在 Android Studio 中导入 dropbox Chooser SDK?

    https www dropbox com developers dropins chooser android https www dropbox com developers dropins chooser android 我正在尝试在
  • 修改Robot Framework中的列表列表

    我有一个在机器人框架中使用的嵌套列表 我想更改机器人框架级别的子列表中的一项 我的清单如下所示 鲍勃 玛丽 六月 七月 八月 我想将 七月 更改为其他名称 例如 九月 机器人框架将允许我更改 bob 或 mary 但如果我尝试插入列表 它会
  • 我们可以从worker/minion节点运行kubectl吗?

    我有 kubernetes 集群设置 我想检查工作程序 minion 节点中的节点 我们可以从工作程序 minion 节点运行 kubectl 吗 是的 您只需要拥有正确的客户端凭据 就可以从可以通过网络访问 apiserver 的任何地方
  • Windows 登录集成

    我正在出于某种目的构建面部识别软件 但是 作为衍生产品 我想使用相同的软件 概念 当我坐在电脑前时自动识别我并登录 处理识别 但是 我需要将其合并到 Windows 中 就像指纹登录的工作方式一样 我可以去哪里获取有关执行此操作的更多信息
  • 使用 wicked_pdf 从生成的 PDF 生成 ZIP

    在我的发票系统中 我需要一个备份功能来一次性下载所有发票到一个 zip 文件中 该系统在 Heroku 上运行 因此只能临时保存 pdf 我安装了 ruby zip 和 wicked pdf gem 我当前在控制器中的代码 def zip
  • 垃圾收集线程太多

    我正在用java开发一个软件 它在接收到事件 来自传感器 时创建一个线程 这些线程的生存时间非常短 传感器发送最多 10 个事件 分钟 这个应用程序在大多数情况下都运行良好 但有时它会挂起 当查看 eclipse 调试器时 我发现有很多线程
  • 你怎么知道用 malloc() 分配多少空间?

    我是一个完全的 C 新手 我来自 C 我一直在学习内存管理和malloc 功能 我也遇到过这段代码 char a persons name malloc sizeof char 2 我不明白这是分配了多少空间a persons name 是
  • Excel更改条件格式公式

    我有一个表 其中包含许多代表时间线的单元格 每分钟一个单元格 宽度非常小 我想在该表中可视化包含三个阶段的操作 一条线上可以有多个手术 代表一个手术室 例如 如果准备工作在 10 00 开始 实际操作在 10 23 开始 则这些时间之间的所
  • 如何使用GVIM编辑远程文件?

    我在 Ubuntu 9 10 上使用 GVIM 我正在寻找正确的方法来配置 GVIM 以便能够通过 ftp 等方式编辑远程文件 HTML PHP CSS 当我使用 e scp username remotehost path to file
  • 将数据表导出到 Excel [重复]

    这个问题在这里已经有答案了 可能的重复 如何在C 中将DataTable导出到Excel https stackoverflow com questions 8207869 how to export datatable to excel
  • Mongoose 使用多个参数搜索 FindOne

    我第一次尝试使用 Angular Express mongodb 构建一些东西 所以我可能会以完全错误的方式进行处理 Express 用于提供 json 然后 Angular 会处理所有视图等 我正在使用 Mongoose 与 Mongo
  • Python运行系统命令然后退出...不会退出

    我有以下 python 代码 os system C Python27 python exe C GUI TestGUI py sys exit 0 它运行命令正常 并弹出一个窗口 但是 它不会退出第一个脚本 它就留在那里 我最终不得不强制
  • 如何使用带标签的 AWS Cli 过滤 Lambda?

    所以我知道我可以通过此命令以文本 csv 形式获取所有 lambda 函数 aws lambda list functions region us east 1 query Functions FunctionName output tex
  • 如何获取带视频 ID 的 YouTube 视频描述?

    我目前正在使用 youtube 的 Javascript API 在我的网页上显示视频 但是现在我还想从视频 ID 中检索 youtube 描述 我该怎么做呢 我只想要描述和标题 ex kind youtube video etag eta
  • 使用 Nom 5 解析带有转义引号的单引号字符串

    我是 Rust 和 Nom 的新手 我正在尝试解析可能包含转义引号的 单 引号字符串 例如 foo bar or x x or 我找到了escaped 宏 其文档 https docs rs nom 5 0 1 nom macro esca
  • LinkedList 为同一功能提供了多种方法 - 为什么? [复制]

    这个问题在这里已经有答案了 我正在检查Java util LinkedList类 发现Linked List类提供了几个方法 public void addFirst E e public boolean offerFirst E e pu