HashSet:不保证元素迭代的顺序,并且不保证该顺序恒久不变。
为什么: HashSet底层数据结构是哈希表,依赖于hashCode()和equals()
先判断hashCode()------false---------------------------------------false----元素重复
-------true-------判断equals()方法-----true-----true-----元素不重复
重写hashCode():把对象的所有成员变量值相加即可。
如是基本类型,就加值,如是引用类型,加哈希值
equals():A:this = obj;
B:!(obj instanceof Student)
C:所有成员变量的值比较,基本类型用==,引用类型用equals() |
|