【发布时间】:2015-04-05 10:17:54
【问题描述】:
有没有一种简单的方法可以使用Guava 来检查我的Collection 是否包含相同的元素?
【问题讨论】:
-
此答案中列出了您的 4 个最佳选择:stackoverflow.com/a/29288616/276052
标签: java collections
有没有一种简单的方法可以使用Guava 来检查我的Collection 是否包含相同的元素?
【问题讨论】:
标签: java collections
我认为你不需要 Guava。您可以简单地将Collection 中的所有对象传递到Set 中,如果您得到大小为1 的Set,则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 建议的那样,HashSet 类 has a constructor 带有 Collection 参数,所以你可以这样做:
public boolean checkCollectionForEqualObjects(Collection<SomeObject> collection) {
return new HashSet<>(collection).size() == 1;
}
【讨论】:
HashSet 有一个构造函数可以将Collection 作为参数,所以你不需要自己做迭代