特定のコレクションのすべての要素が何らかの条件を満たしているかどうかをテストしたいと仮定すると、これはグアバの例です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)));
}
ただし、その述語を再利用できない場合は、guava wiki が示唆するように、機能しないバージョンを検討する必要があります。
public static boolean allLessThan(Collection<Integer> numbers, Integer value) {
for (Integer each : numbers) {
if (each >= value) {
return false;
}
}
return true;
}