Если я вас правильно понимаю, я не уверен, что Predicate является правильным решением здесь:
Создание такого предиката потребовало бы поддержания какого-то состояния (т. Е. Поддержания набора вещей, который он имеетвидел уже).Это явно не рекомендуется в javadoc.
Обычный способ получить отдельные элементы в коллекции - просто добавить их все в набор.то есть:
Set<T> uniqueItems = Sets.newHashSet(collectionWithPotentialDuplicates);
Если методы equals () и hashCode () в <T>
не определяют уникальность так, как вам нужно, то вы должны написать вспомогательный метод, который работает с Collection<T>
иFunction<T, Object>
, который возвращает элементы типа T
, которые являются уникальными после преобразования с использованием Function