我剛開始收集和我寫代碼HashSet
HashSet的不衰第二添加呼叫
這裏測試的是代碼(Person.java):
public class Person
{
int id;
public Person(int id)
{
this.id=id;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id=id;
}
public boolean equals(Object o)
{
if (o instanceof Person)
{
Person p=(Person)o;
if (this.id==p.id)
return false;
else
return true;
}
else return false;
}
public int hashCode()
{
return 21*id;
}
}
和實現一流的,只是一個簡單的類:
import java.util.*;
class HashSetTest
{
public static void main(String[] args)
{
Set<Person> set=new HashSet<Person>();
Person p1=new Person(6);
Person p2=new Person(6);
System.out.println(set.add(p1));
System.out.println(set.add(p2));
}
}
如果我沒看錯的第二System.out.println
語句應該返回false
,因爲它不應該添加的元素因爲它是重複的,但它返回true。
格式化您的代碼。 – m0skit0 2013-02-20 13:24:59