有没有flatten
Guava 中的方法 - 或转换 Iterable<Iterable<T>>
的简单方法到 Iterable<T>
?
我有一个 Multimap<K, V>
[sourceMultimap] 我想返回键匹配某个谓词 [keyPredicate] 的所有值。所以目前我有:
Iterable<Collection<V>> vals = Maps.filterKeys(sourceMultimap.asMap(), keyPredicate).values();
Collection<V> retColl = ...;
for (Collection<V> vs : vals) retColl.addAll(vs);
return retColl;
我查看了 Guava 文档,但没有任何内容。我只是在检查我没有错过任何东西。否则,我会将我的三行代码提取到一个简短的 flatten 泛型方法中并保持不变。
最佳答案
Iterables.concat method满足该要求:
public static <T> Iterable<T> concat(Iterable<? extends Iterable<? extends T>> inputs)
关于java - 在 Guava 中展平一个 Iterable<Iterable<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5949091/