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

为什么Java ArrayList类返回用于Add的布尔值?

房新翰
2023-03-14

我的老师给了我一个我正在写的方法的这个类比。我还是不明白为什么add方法会返回一个boolean?

共有1个答案

黄隐水
2023-03-14

这来自collection 接口,因为该接口用作各种集合的祖先类,所以返回一个boolean来通知add是否有效地更改了集合是有意义的。

这对于像set 这样的集合很有用,如果添加的元素已经存在于集合中,则不会更改。在列表 的情况下,Java通过设计强制返回true,因此如果您想通知调用方操作未成功,则必须找到其他方法(例如抛出异常)。

这在集合 .add 文档中有明确说明:

如果集合拒绝添加特定元素的原因不是因为它已经包含该元素,那么它必须抛出异常(而不是返回false)。这将保留在此调用返回后集合始终包含指定元素的不变量。

基本上,返回的值并不表示失败,但如果成功的添加操作会更改集合。任何失败都必须通过抛出异常来通知。

 类似资料:
  • 我有一个方法,它检查一个对象是否已经存在于数组列表中,如果存在,则用新对象替换索引,如果不存在,则添加新对象。 当我编写方法时,我没有返回类型。我收到一个错误,建议我将返回类型设置为void,所以我就这样做了。然后我得到了另一个错误,返回类型必须是布尔的。我唯一的问题是方法本身本质上(至少对我来说)不是true/false返回。我需要它做的只是在ArrayList中添加/替换一个对象,而不是返回任

  • 我觉得这给了我很小的灵活性每当我使用这个函数。使用此函数时,我通常会查找元素的第一次出现,但它只返回,我发现这一点有些欠缺。 使用此函数的主要原因是每当找到元素时,都会循环,因此使用会失去作用,因为不会短路。是相同的。 我是遗漏了什么,还是必须使用循环来获取JavaScript中的第一个匹配元素?

  • 问题内容: 查看javadoc,我看到ArrayList有一个重载的add方法: public boolean add(E e) 将指定的元素追加到此列表的末尾。 和 public void add(int index,E元素) 将指定的元素插入此列表中的指定位置。将当前在该位置的元素(如果有)和任何后续元素右移(将其索引添加一个)。 我注意到第一个返回了一个,而第二个返回了一个。事实证明,第一个

  • 一个标准的习语是 所以如果这行得通,为什么我不能说 g表示“

  • 这是一个布尔方法,是我作业的一小部分。我想根据输入和记录之间是否匹配来返回true或false。我想我遇到了语法问题。 这是该方法的代码,但始终有红线指示我应该在代码中添加return,否则将该方法更改为void。但我已经在if语句中添加了return true。

  • 好的,我的问题是关于布尔返回。对于我的Comp-Sci作业,我必须使用多种方法制作一个课程注册程序,其中之一就是添加课程方法。基本上,在目录中搜索类,如果匹配,则将其添加到学生计划中,并返回布尔值true。我这么做了,但出于某种原因,这给了我一个错误。以下是代码: 为什么它不能识别布尔返回值?是因为我把它们放在了一个圈里吗?