Set中判断是否满足下面的条件才会将元素加入到Set中去
o:(o==null ? e==null :o.equals(e))
。
从上面可以看出Set每次添加的时候是判断调用的加入元素自己的equals方法,也就是说,重载equals是很重要的,不然的话一定会把相同的对象加进去,懒得话就拿String当数据模型填进去。(建议不要,这不是一个很好的面向对象方式)。从另一个角度讲,如果没什么必要地话,按照《Effective Java》讲述的面向对象规则来说,没有特殊必要的情况下,应该把数据对象做成不变模式的。