はじめての Lambda vol.2

Java

今朝から作ったプログラムを Lambda を使うように変更しようといろいろ調べてた。

そしたら以前 Fork/Join フレームワークについて調べていたときに発見したコードを目にした。

確か IBM のサイトにあった記事だがどうやらちょくちょくサンプルにあがってくるコードらしい。

日本語で Lambda の解説をしてくれているサイトにもあった。

ある年の学生のハイスコアを見つけ出すプログラムだ。

それを参考にしてこんなプログラムを組んでみた。

一番大きなバストを調べるプログラムだ。

ただし年齢制限を設けた。

16歳以上、26歳未満だ。

Java 7 でのコードは次のようになります。

jp\yucchi\hello_lambda_2\Hello_Lambda_2.java

実行結果は

run:
16歳以上、26歳未満で一番大きな胸のサイズは90です。
構築成功 (合計時間: 0 秒)

期待通りの結果となります。

次にこれを Lambda を使ってみます。

 

jp\yucchi\hello_lambda_2\Hello_Lambda_2.java

なんか見慣れないものがちらほらありますね。

実行結果は

Hello_Lambda_2

Good! (^^)

この部分が JDK 8 の新兵器 Lambda ですね。

見慣れないメソッドの正体は

filter メソッド : コレクションの要素のフィルタリングをする優れものです。

引数の Predicate オブジェクトの eval メソッドの戻り値が true の要素だけをフィルタリングします。

 

map メソッド : 新しいコレクションを作り直すメソッドです。

Mapper オブジェクトの map メソッドの戻り値を新たな要素としたコレクションを作ります。

 

reduce メソッド : 要素を減らして、最終的に一つにするためのメソッドです。

以上のように Lambda を使うポイントを少しだけ知ったつもりになった。(^0^;)

もっと詳しく知りたい方は参考にさせていただいたというよりは、まるっといただいたサイトを紹介します。

Project Lambda

こちらのサイトが勉強になります。

ただし、上記のプログラムでパラレル処理をする方法も載っていましたが

なんと エラー になってしまいます。

Lambda はまだ開発途中なので紹介したサイトの情報もいつまで有効なのかは解りません。

日本語の情報はまだまだ少ないようなので、英語が得意な方は英語サイトをググって情報収集したほうがいいかもです。

Hatena タグ:

« »

Leave a Reply

* が付いている項目は、必須項目です!

次の HTML タグと属性を利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

*

Trackback URL