当前位置: 首页 > 知识库问答 >
问题:

LinkedList这三种非常相似的方法背后的目的是什么?[重复]

卢鸿博
2023-03-14

我正在浏览LinkedList的Java8文档,我看到了几个似乎做同样事情的方法。例如:

  1. add(E):将指定的元素追加到此列表的末尾

这三个似乎都做同样的事情。我看到addoffer都返回布尔值,表示修改是否成功。

add的文档甚至说它与addLast相同,尽管它不返回任何内容。我想我在想为什么这么多冗余?我什么时候会选择一个而不是另一个?

共有1个答案

干茂才
2023-03-14

LinkedList实现了几个接口:

  • 添加来自列表队列接口,它们从集合获取
  • offer来自Queue接口,与add方法在失败时的作用不同(在Javadoc的表格中描述)
  • addLast来自Deque界面Deque也是一个集合,因此有add方法;也许addLastaddFirst方法是为了清晰和对称而存在的,因此您不必怀疑add将添加到哪个endpoint。如Javadoc中所述,Deque。addLast队列。add是等效的

你应该选择哪一种:这完全取决于你,因为他们做同样的事情(给予或接受回报类型)。

更大的问题是:LinkedList为什么要尝试做这么多事情(不是很单一的责任原则,是吗?);你应该用它吗?

推特上有一个帖子,乔希·布洛赫——java.util.领英名单的作者——质疑它是否真的有用。他建议你最好使用ArrayListArrayDeque,这取决于你需要它做什么。

 类似资料:
  • 我对编程很陌生,我已经自学了将近一个月了,有谁能给我解释一下我代码中错误的原因吗?在“Total(moneyConv(moneySum*moneyRate))”中出错。行,表示实际和形式的论点在长度上是不同的。我检查了我所有的参数,我觉得很好。多谢!

  • 问题内容: 在回答这个问题时,我和其他一些人实际上认为是错误的,因为认为以下方法可行: 说一个有 背后的原因是什么 而有一个 要么 要么 是造成尺寸 退化的 原因吗? 问题答案: 是对象dtype的2D数组,每行的第一个元素是一个列表。 是对象dtype的一维数组,其每个元素都是列表。 当您这样做时,NumPy不会对list的每个元素进行元素比较。它从中创建尽可能高维的数组,生成1D数组,然后广播

  • 以下是全部代码: 输出是: 编译器背后发生了什么导致了这些结果?

  • 根据这些文档,我知道一旦我们在存储中有了firebase路径,我们就可以通过调用该路径的上的来获得下载url。我的问题是,所有文档都建议先获取下载url,然后根据这些图像下载文件数据,但是我们是否可以将这个下载url保存在文件的实时数据库中,这样我们就不必每次都调用了? 当前文件上载和下载工作流程-> 上传: 下载 更好的上载/下载工作流程-> 在暗地里做什么?给定的url是静态的吗?

  • 我已经在Python中通过,它们看起来都非常相似。为什么?如何随机化它们?

  • 我几天前听说了Docker的事,想过去看看。 但事实上,我不知道这个“容器”的用途是什么? 什么是容器? 它能取代一个专门用于开发的虚拟机吗? 简单地说,在公司中使用Docker的目的是什么?主要的优势?