假設你想測試一個給定的集合中的所有元素是否滿足一些條件,這是番石榴的Predicate
(一個例子@ ColinD的評論指向財富涉及Comparable
已有謂詞):
public static class LessThan<T extends Comparable<T>> implements Predicate<T> {
private final Comparable<T> value;
public LessThan(final Comparable<T> value) {
this.value = value;
}
@Override
public boolean apply(final T input) {
return value.compareTo(input) > 0;
}
}
public static void main(final String[] args) {
final Collection<Integer> things = Arrays.asList(1, 2, 3, 4);
System.out.println(Iterables.all(things, new LessThan<Integer>(5)));
}
但除非你可以重複使用謂詞,你應該利弊像番石榴維基建議的那樣,可以是非功能性版本。:
public static boolean allLessThan(Collection<Integer> numbers, Integer value) {
for (Integer each : numbers) {
if (each >= value) {
return false;
}
}
return true;
}
我要給你的假設,你,你打完它 – Cruncher
番石榴有一個'Predicate'接口之前提交這個疑點利益,但它是爲過濾。 –
@SotiriosDelimanolis您可以使用(C++風格)謂詞實現一個比較器,其中假定謂詞在if