set 无序 不可以重复
HashSet
HashSet是根据HashCode存放对象位置的
1:重写HashCode返回常量 重写equals返回true 这个不管new几个对象都是一个对象 只能存一个.
2:重写HashCode返回常量 这个虽然对象不一样,但是放的位置确实一样,这让HashSet很为难,因为同一个位置不能有多个对象,所以这个用了链表来保存但是这种写法很不规范,会让HashSet性能大大降低.
3:重写equals返回true 虽然对象是同一个 但是HashCode不同,保存的位置也不同,理论上HashCode跟equals返回时相辅相成的.
TreeSet
这个实现类比较特殊 他是有序的
排序规则
0-9
A-Z
a-z
中文会根据unicode码进行排序