什么是番石榴相当于Scala的flatMap?

时间:2012-12-07 05:14:04

标签: java scala functional-programming guava

浏览https://github.com/google/guava/wiki/FunctionalExplained我看到transform等操作,它会转换列表但保持相同的基数。如何执行导致不同基数的转换?例如(伪代码)List(1,2,3).transform(i => List(i, i)) - > List(1,1,2,2,3,3)

4 个答案:

答案 0 :(得分:44)

从版本13开始,transformAndConcat上有FluentIterable

答案 1 :(得分:7)

我认为没有直接翻译,但transform后跟concat应该是等效的。

答案 2 :(得分:3)

Eclipse Collections中,collect()相当于Scala的map(),而flatCollect()相当于Scala的flatMap()

以下是flatCollect with Java 8 Lambdas的示例用法。

注意:我是Eclipse Collections的提交者。

答案 3 :(得分:2)

注意一件事:Scala的map方法返回新的集合,而Guava中的transform()方法返回原始集合的转换视图。这是一个非常微妙的区别。您需要确定“查看原始集合”是否适合您的上下文。