谷歌谓词 com.google.common.base.Predicate
提供两个接口
@GwtCompatible
public interface Predicate<T> {
@CanIgnoreReturnValue
boolean apply(@Nullable T input);
@Override
boolean equals(@Nullable Object object);
}
写法对比
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
numbers.forEach(number->{
if ((number % 2) == 0){
System.out.println("number = " + number);
}
});
// 转换
Predicate<Integer> predicate = input -> (input % 2) == 0;
Iterable evenNumbers = Iterables.filter(numbers, predicate);
evenNumbers.forEach(i-> System.out.println("i = " + i));
// 转换
numbers.stream().filter(i->(i % 2) == 0).forEach(filter-> System.out.println("filter = " + filter));
}