Predicate を効かした Iterable の生成のもう1つの方法

oboe2uran.hatenablog.com

もっと単純に以下の方法、、
StreamSupport で作る filter に任せる。

static <T> Iterable<T> select(Iterable<T> it, Predicate<T> pred) {
    return () -> StreamSupport.stream(it.spliterator(), false)
        .filter(pred).iterator();
}