hashCode int hashCode()返回 set 的哈希码值。一个 set 的哈希码定义为此 set 中所有元素的哈希码和,其中 null 元素的哈希码定义为零。这就确保对于任意两个 set s1 和 s2 而言,s1.equals(s2) 就意味着 s1.hashCode()==s2.hashCode(),正如 Object.hashCode() 的常规协定所要求的那样。 equals boolean equals(Object o)比较指定对象与此 set 的相等性。如果指定的对象也是一个 set,两个 set 的大小相同,并且指定 set 的所有成员都包含在此 set 中(或者,此 set 的所有成员都包含在指定的 set 中也一样),则返回 true。此定义确保了 equals 方法可在不同的 set 接口实现间正常工作。
是无重复元素集合的一种抽象。
如果楼主想问,如何实现无重复,
那就要问具体的Set的实现类。
比如,HashSet、TreeSet等等。
HashSet是通过回调存入元素的equals方法,来区分元素是否相同的,
当然,HashCode方法,加速了相同元素的比较过程。
TreeSet是通过回调存入元素的compare方法,来区分元素是否相同的。
compare方法将元素变成有序的集合。
长时间不用,有些遗忘了。
list iterator不判断
)是判读两个set是否相等。 equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。 这是我网上找到的答案
int hashCode()返回 set 的哈希码值。一个 set 的哈希码定义为此 set 中所有元素的哈希码和,其中 null 元素的哈希码定义为零。这就确保对于任意两个 set s1 和 s2 而言,s1.equals(s2) 就意味着 s1.hashCode()==s2.hashCode(),正如 Object.hashCode() 的常规协定所要求的那样。 equals
boolean equals(Object o)比较指定对象与此 set 的相等性。如果指定的对象也是一个 set,两个 set 的大小相同,并且指定 set 的所有成员都包含在此 set 中(或者,此 set 的所有成员都包含在指定的 set 中也一样),则返回 true。此定义确保了 equals 方法可在不同的 set 接口实现间正常工作。
里面有专门介绍集合类的一篇,并且有详细说明:set是如何保证不重复的。