2010-12-20 68 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