java.util.Collection和复制元素

java.util.Collection和复制元素,java,collections,Java,Collections,从 布尔加法(E) 确保此集合包含指定的元素(可选) 操作)。如果此集合由于以下原因而更改,则返回true 呼叫(如果此集合不允许重复,则返回false 已包含指定的元素。) 它只表示“如果此集合不允许重复,则返回false”。它没有解释是应该忽略该元素还是替换该元素。根据这句话“如果此集合由于调用而发生更改,则返回true”,我假定,每当此方法返回false时,这意味着该集合将忽略该元素,并且没有替换任何元素,该集合将保持原样。对吗 对于重复的元素,java.util.Collection实现

布尔加法(E)

确保此集合包含指定的元素(可选) 操作)。如果此集合由于以下原因而更改,则返回true 呼叫(如果此集合不允许重复,则返回false 已包含指定的元素。)

它只表示“如果此集合不允许重复,则返回false”。它没有解释是应该忽略该元素还是替换该元素。根据这句话“如果此集合由于调用而发生更改,则返回true”,我假定,每当此方法返回false时,这意味着该集合将忽略该元素,并且没有替换任何元素,该集合将保持原样。对吗


对于重复的元素,java.util.Collection实现不允许重复的类所执行的操作是什么?它是始终忽略还是始终替换,还是取决于实现?

因为它在修改集合时返回true,返回false意味着它没有修改集合,即它没有替换元素。

因为它在修改集合时返回true,返回false意味着它没有修改集合,即它没有替换元素。

这是正确的

如果尝试添加重复项,则不允许重复的集合将返回false。任何东西都不会被修改,只是会被忽略

如果您正在为集合编写一个实现,那么理论是:

检查集合是否已包含它。 如果是,则返回false。 否则,添加要设置的元素,返回true

没错

如果尝试添加重复项,则不允许重复的集合将返回false。任何东西都不会被修改,只是会被忽略

如果您正在为集合编写一个实现,那么理论是:

检查集合是否已包含它。 如果是,则返回false。
否则,添加要设置的元素,返回true

文档可能没有涉及的问题是“集合能否快速检测到重复项并存储它们?”。答案是肯定的,可以举一个例子,在番石榴中,所有重复项都被计数并收集。add(obj)始终返回
true

文档可能没有涉及的问题是“收集是否可以快速检测重复项并存储它们?”。答案是肯定的,例如Guava中的一个例子,其中所有重复项都被计数并收集。add(obj)始终返回
true
具体的实现清楚地解释了它,例如HashSet.add说“如果这个集合已经包含元素,那么调用将保持集合不变并返回false”

具体实现清楚地解释了它,例如HashSet.add说“如果这个集合已经包含元素,那么调用将保持集合不变并返回false”

我认为它必须忽略它,否则它将返回true。我认为它必须忽略它,否则它将返回true。