设置集合中的值重复?

2022-09-03 08:55:40

是否可以允许在 Set 集合中出现重复值?

有没有办法使元素独一无二并拥有它们的一些副本?Set 集合是否有任何函数可用于在集合中包含重复值?


答案 1

有没有考虑过使用java.util.List代替?

否则,我会推荐Google GuavaMultisetGoogle Collections的继任者,这个答案最初推荐-ed.)。


答案 2

Set 的定义本身就不允许重复。我想也许你想使用另一种数据结构,比如List,这将允许dups。

有没有办法使元素独一无二并拥有它们的一些副本?

如果由于某种原因,您确实需要在集合中存储重复项,则需要将它们包装在某种持有者对象中,或者覆盖模型对象的 equals() 和 hashCode(),以便它们不会计算为等效项(如果您尝试多次存储对同一物理对象的引用,即使这样也会失败)。

我认为你需要重新评估你在这里试图完成的目标,或者至少向我们更清楚地解释它。