如何使用Guava检查集合中的每个元素是否彼此相等

时间:2015-02-05 14:05:32

标签: java collections

是否有一种简单的方法可以使用Guava检查我的Collection是否包含相同的元素?

1 个答案:

答案 0 :(得分:2)

我认为你不需要番石榴。您可以简单地将Collection中的所有对象传递到Set,如果您的Set大小为1,则Collection中的所有对象都会传递将被视为相等(因为,根据定义,Set不能包含重复项)。例如:

public boolean checkCollectionForEqualObjects(Collection<SomeObject> collection) {
    Set<SomeObject> set = new HashSet<>();
    for (SomeObject object : collection) {
       set.add(object);
    }
    return set.size() == 1;
}

更好的是,正如@blgt建议的那样,HashSethas a constructor带有Collection参数,所以你可以这样做:

public boolean checkCollectionForEqualObjects(Collection<SomeObject> collection) {
    return new HashSet<>(collection).size() == 1;
}