2012-12-07 24 views
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)ScalaのflatMapに相当するGuavaとは何ですか?

+0

有効なScalaはいつ擬似コードですか? :) – Natix

+0

@Natix私はScalaが実際に擬似コードよりも構文的に柔軟性があると思います:) – toniedzwiedz

答えて

7

私は直接翻訳があるとは思わないが、transformとそれに続くconcatは同等でなければならない。

3

collect()はScalaのmap()に相当し、そしてflatCollect()はScalaのflatMap()のと同じです。

次に、flatCollect with Java 8 Lambdasの使用例を示します。

注:私はEclipse Collectionsのコミッターです。

2

ただし、Scalaのマップメソッドは新しいコレクションを返しますが、Guavaのtransform()メソッドは元のコレクションの変形ビューを返します。これは非常に微妙な違いです。 「元のコレクションを見る」があなたの状況に適しているかどうかを判断する必要があります。

関連する問題