41

Guavaにメソッドがありますflattenか、または を に変換する簡単な方法はIterable<Iterable<T>>ありIterable<T>ますか?

[sourceMultimap]がMultimap<K, V>あり、キーが述語 [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のドキュメントを調べましたが、何も飛び出しませんでした。私は何も見逃していないことを確認しています。それ以外の場合は、3 行を短い flatten ジェネリック メソッドに抽出し、そのままにしておきます。

4

2 に答える 2

74

Iterables.concat メソッドはその要件を満たします。

public static <T> Iterable<T> concat(Iterable<? extends Iterable<? extends T>> inputs)
于 2011-05-10T11:31:02.017 に答える