2010-12-20 67 views
0

下面是我的代码,java.util.Set中增加了重复的条目

public class Myclass{ 
    some code is here. 
    } 

    public static void main(String args[]){ 
    Set<Myclass> set = new HashSet<Myclass>(); 
    Myclass mc = new Myclass(); 
    for(int i=0;i<2;i++){ 
     set.add(mc); 
    } 
    System.out.println("size of set : "+set.size()); 
    } 

上面的代码是打印输出2,但它会1.是否有错我的代码,如果是的话,那么请建议我如何避免在集合中添加重复条目。我在我的Myclass类中覆盖了equals()。

请尽快回复我。

谢谢。

+1

你重新实现了'equals'和'hashCode'吗? – 2010-12-20 05:16:22

+1

“某些代码”很重要,特别是如果它是'Set <>'所使用的方法之一。 – 2010-12-20 05:17:57

回答

4

你大概需要为MyClass执行equals()hashCode(),否则它将不会正确地检查相等性。

+0

嗨,感谢您的回复。我已经在我的MyClass中实现了equals(),然后它会添加重复条目。 – 2010-12-20 05:20:57

+1

你可以显示你的equals()和hashCode()方法吗?也许你实现他们错了 – 2010-12-20 05:26:10

+1

@Lokesh:你错过了“和”? – 2010-12-20 05:26:26