Google Collections Distinct Predicate

jav*_*vaj 3 java guava

如何使用Google Collections Collections2.filter方法实现不同的谓词?

Mic*_*l D 9

如果我理解正确,我不确定Predicate是否是正确的解决方案:

创建这样的谓词需要保持某种状态(即:维护已经看到的一组事物).在javadoc中明确建议这样做.

获取集合中不同项的常用方法是将它们全部添加到集合中.即:

Set<T> uniqueItems = Sets.newHashSet(collectionWithPotentialDuplicates);
Run Code Online (Sandbox Code Playgroud)

如果equals()和hashCode()方法<T>没有按照你想要的方式定义唯一性,那么你应该编写一个对a Collection<T>和a Function<T, Object>进行操作的实用程序方法,它返回T使用the转换后唯一的类型的项.Function