列表::包含比较器
有没有办法(方法,lambda或优雅的构造)在基于给定比较器的列表中找到元素?
我写了一个这样的方法:
private static <T> boolean contains(List<T> list, T item, Comparator<? super T> comparator) {
return list.stream()
.anyMatch(listItem -> comparator.compare(listItem, item) == 0
);
}
但我希望用更优雅的东西来取代它。
我不想添加任何依赖关系,所以没有番石榴,“公地”等。我真的在寻找一种在Java 8中做到这一点的漂亮方法。
编辑:一些我认为更优雅的示例(这是使用代码):
// sadly, this method doesn't exist
// nor is there a static one in Collections
// but maybe you can think of another way?
if (list.containsSame(item, comparator)) {
// ...
}