我已經(jīng)習(xí)慣了 C#,IEnumerable<T>.SelectMany但發(fā)現(xiàn)自己使用 Google 的 Guava 庫(kù)涉足了一些 Java 代碼。番石榴中是否有等同于 SelectMany 的東西?示例:如果我有這樣的流/映射結(jié)構(gòu)collections
.stream()
.map(collection -> loadKeys(collection.getTenant(), collection.getGroup()))
.collect(GuavaCollectors.immutableSet());whereloadKeys返回類似的東西ImmutableSet<String>,這個(gè)函數(shù)會(huì)返回ImmutableSet<ImmutableSet<String>>,但我想把它們壓平成一個(gè)ImmutableSet<String>最好的方法是什么?
1 回答

躍然一笑
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用Stream::flatMap
方法:
collections .stream() .flatMap(collection -> loadKeys(collection.getTenant(), collection.getGroup()).stream()) .collect(ImmutableSet.toImmutableSet());
請(qǐng)注意,您得到了方法stream
外的loadKeys
結(jié)果。結(jié)果應(yīng)該ImmutableSet<String>
假設(shè)loadKeys
返回一個(gè)集合。
添加回答
舉報(bào)
0/150
提交
取消