25

浏览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

4 回答 4

44

从版本 13 开始,有transformAndConcat.FluentIterable

于 2012-12-07T05:51:57.950 回答
7

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

于 2012-12-07T05:24:16.130 回答
3

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

这是 flatCollect与 Java 8 Lambdas 的示例用法。

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

于 2012-12-10T17:52:54.673 回答
2

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

于 2014-02-12T20:34:03.110 回答