什么时候被认为是两个不同的对象Sets.difference
.当它们有不同的哈希码或者object.equals
返回false时.
javadoc说:
返回的集合包含由其
set1
包含但未包含的所有元素set2
因此,这意味着规则取决于两组的类型.例如,如果Set是HashSet,equals()
则将使用.如果该集合是TreeSet,则将使用compareTo()
(或比较器的compare()
方法).如果使用IdentityHashSet,则将使用该对象的标识.
hashCode()
永远不会被任何(正确的)Set实现用来确定相等性,因为两个不相等的对象可能具有相同的hashCode.