set中判断两个对象是否相等是根据equles()以及hashCode()两个函数共同参与的。
当自定义的对象重写了equles()方法后还要重写hashCode()方法(只有用到集合框架的 Hashtable、HashMap、HashSet的时候,才需要重载hashCode()方法)。
这样可以保证逻辑相等的对象他的hashCode值也是相等的真真正正保证两个对象逻辑上的相等从而在set中不会出现逻辑上重复的对象。
我的理解就是:set中不允许出现值相同的元素。(不是引用,是值)