set里的元素是不能重复的,那么用什么方法来区分重复与否

如题所述

1什么是Set?(what) Set是Collection容器的一个子接口,它不允许出现重复元素,当然也只允许有一个null对象.
2、如何来区分重复与否呢?(how) “用 iterator() 方法来区分重复与否 ”,这是在网上流传的答案,个人认为这是个错误的答案.JPI中写的很明白:“set 不包含满足e1.equals(e2) 的元素对 e1 和 e2 ”,由此可见回答使用equals()区分更合适.
3、为什么用equals()而不用==来区分?(why) 应该从它俩的区别谈起,==是用来判断两者是否是同一对象(同一事物),而equals是用来判断是否引用同一个对象.再看一下Set里面存的是对象,还是对象的引用.根据java的存储机制可知,set里面存放的是对象的引用,所以当两个元素只要满足了equals()时就已经指向同一个对象,也就出现了重复元素.所以应该用equals()来判断.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-14
建议看下equal和hashCode的方法的内容
相似回答