Dee*_*rma 1 java collections hashset
我刚刚开始使用Collection,我已经编写了代码来测试 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;
}
}
Run Code Online (Sandbox Code Playgroud)
和Implementation类,只是一个简单的类:
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));
}
}
Run Code Online (Sandbox Code Playgroud)
如果我没有错,第二个System.out.println语句应该返回,false因为它不应该添加元素,因为它是重复但它返回true.
当元素匹配时,似乎该Person.equals方法返回false.
它应该是
if (this.id==p.id)
return true;
else
return false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |