aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util/ExtraIterables.java')
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraIterables.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraIterables.java b/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
index 0fcc9af..4b8b802 100644
--- a/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
+++ b/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
@@ -86,6 +86,15 @@ public class ExtraIterables {
return Iterables.concat(list(head), tails);
}
+ public static <T> Iterable<T> lazyFilter(Iterable<T> iterable, java.util.function.Predicate<T> predicate) {
+ return new Iterable<T>() {
+ @Override
+ public Iterator<T> iterator() {
+ return stream(iterable).filter(predicate).iterator();
+ }
+ };
+ }
+
public static <T, R> Iterable<R> lazyMap(Iterable<T> iterable, Function<T, R> function) {
return new Iterable<R>() {
@Override