查找是否包含给定对象的Set

时间:2012-12-27 11:57:10

标签: java collections

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

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。为什么呢?

1 个答案:

答案 0 :(得分:2)

您必须覆盖hashCode()以及equals(),否则,Set将找不到该对象的正确存储桶,甚至不会到达equals()比较。

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