Aplanando un Iterable <Iterable <T>> en Guava

Hay unflattenétodo @ en Guava, o una forma fácil de convertir unIterable<Iterable<T>> a unaIterable<T>?

Tengo unMultimap<K, V> [sourceMultimap] y quiero devolver todos los valores donde la clave coincida con algún predicado [keyPredicate]. Así que por el momento tengo:

Iterable<Collection<V>> vals = Maps.filterKeys(sourceMultimap.asMap(), keyPredicate).values();

Collection<V> retColl = ...;
for (Collection<V> vs : vals) retColl.addAll(vs);
return retColl;

He revisado los documentos de Guava, pero nada sobresalió. Solo estoy comprobando que no me he perdido nada. De lo contrario, extraeré mis tres líneas en un método genérico de aplanamiento corto y lo dejaré así.

Respuestas a la pregunta(2)

Su respuesta a la pregunta