LoginSignup
15
8

More than 5 years have passed since last update.

[Groovy]GroovyからJava8のstreamを利用する。

Last updated at Posted at 2015-04-16

グルービャーなら一度は目にしたことがあるであろうHAKIに、GroovyからJava8のstreamを利用する方法が書かれていました。
Groovy Goodness: Use Closures as Java Lambda Expressions

よりシンプルなサンプルを書いてみました。
以下のような感じで利用できるみたいです。

1から10の数値が格納されたリストから、偶数を抜き出して、それぞれに1を足す、と言う処理です。
Groovyからstreamってどんな時に使うの?と言われれば微妙ですが、Javaのサンプルソースなどを色々いじったりする際にGroovyからお手軽に確認することが出来ますね。


// Listのstreamメソッドを叩いてstreamを取得
assert [3, 5, 7, 9, 11] == (1..10).stream()
.filter { // streamのfilter。Groovyで言うところのfindAll。
    it % 2 == 0
}.map{ Integer hoge -> //streamのmap。Groovyで言うところのcollect。itじゃなくて変数を宣言することも当然出来る。
    hoge + 1
}.collect() //コレでstreamからListに変換し直す。

追記(2017/10/16)

Groovy2.6(alpha-1)から、Java8の文法をそのままGroovyで書けるようになりました。
こちらをご覧ください。

15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8