首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinkedHashSet =方法

LinkedHashSet =方法
EN

Stack Overflow用户
提问于 2012-12-09 20:41:04
回答 2查看 2.7K关注 0票数 4

我有两组LinkedHashSet对象,在这个对象中,我有其他具有更多LinkedHashSet的对象。

我的问题是:

equals方法(默认)是否检查所有内部HashSets是否都是相同的?还是我要重写它?

EN

回答 2

Stack Overflow用户

发布于 2012-12-09 20:43:49

默认情况下,它将确保HashSets的内容等于()。LinkedHashSet也是有序的,但这在hashCode中或等于中没有使用,因此它们可以有不同的顺序,并且仍然等于= true。

简而言之,对于HashSets的等号来说,顺序并不重要,而“相等”并不是“相同的”。“相同”通常指的是同一个对象。

票数 8
EN

Stack Overflow用户

发布于 2012-12-09 20:45:36

Set.equals()的契约是每个集合的每个成员都包含在另一个集合中。每个contains测试依赖于集合中对象的equals()方法。

该规范要求任何Set实现都不能依赖equals()的默认实现,即对象标识。(就Set规范而言,集合中的对象可以自由使用默认的Object.equals()来测试等式。但是,如果您有一组集合,则(外部)集中的对象本身就是Set对象,因此受与equals()有关的相同Set契约的约束。)

有关更多信息,请参见Set.equals()Set.contains(Object)的文档。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13791601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档