0

一个集合只包含一个实体社区的对象,我正在使用两个具有相同值的对象,其中一个对象存储在该集合中

Set<Community> communties = template.get(User.class, "1").getCommunities();
Community com = template.get(Community.class, 1);

for(Community community : communties)
        System.out.println(community.equals(com));

System.out.println(communties.contains(com));

First Statement 打印true,但 Second Statement 打印false。为什么?

4

1 回答 1

2

您必须重写 hashCode() 和 equals(),否则,Set 将找不到对象的正确存储桶,甚至无法到达 equals() 比较。

您可以使用 Eclipse 的“Source”菜单生成相当不错的 equals() 和 hashCode() 方法。

于 2012-12-27T12:03:15.347 回答