Java

NetBeans 8 Dev を使って Lambda で遊ぶ その7

Java NetBeans

今日は substream() メソッドを使ってみます。

これを使って MyLambdaSample プロジェクトの MyLambdaSample.java に MyBestMember を FightingPower 詳細昇順ソート 最初から3人までスキップさせます。

使い方は簡単で substream() メソッドの引数にスキップさせたい要素数を渡せばいいだけです。

コードは下記のようになります。

jp\yucchi\mylambdasample\MyLambdaSample.java

とても便利ですね!

実行結果も確認しておきましょう。

<– MyBeatMember を FightingPower 詳細昇順ソート 最初から3人までスキップする –>
北川 景子, 26歳, Gender : FEMALE, Breast Size : 78, FightingPower : 80
綾瀬 はるか, 28歳, Gender : FEMALE, Breast Size : 88, FightingPower : 85
佐々木 希, 25歳, Gender : FEMALE, Breast Size : 80, FightingPower : 85
石原 さとみ, 26歳, Gender : FEMALE, Breast Size : 82, FightingPower : 89

Java 8 の Lambda とても素敵です。(^_^)

Hatena タグ: ,

NetBeans 8 Dev を使って Lambda で遊ぶ その6

Java NetBeans

今回は limit() メソッドを使ってみます。

MyLambdaSample プロジェクトの MyLambdaSample.java に MyBeatMember を FightingPower 詳細昇順ソート 最初から3人まで とういう機能を実装します。

limit() メソッドを使うと簡単にできてしまいます。( 203 行目 )

jp\yucchi\mylambdasample\MyLambdaSample.java

limit() メソッドの引数に制限数を渡すだけですね。

今回は3人ということなので 3 を渡しています。

実行結果は次のように期待通りの結果となりました。

<– MyBeatMember を FightingPower 詳細昇順ソート 最初から3人まで –>
武井 咲, 19歳, Gender : FEMALE, Breast Size : 76, FightingPower : 66
剛力 彩芽, 20歳, Gender : FEMALE, Breast Size : 77, FightingPower : 75
堀北 真希, 24歳, Gender : FEMALE, Breast Size : 78, FightingPower : 76

便利に使えそうですね。(^_^)

Hatena タグ: ,

NetBeans 8 Dev を使って Lambda で遊ぶ その5

Java NetBeans

今日も Java 8 に備えて良く解らないけど未来のコードと戯れたいと思います。

今回は、Functional Interface と Virtual Extension Methods を試してみたいと思います。

ただ、@FunctionalInterface の使い方がこれであっているのか?解りません(>_<。)

@FunctionalInterface を消しても同じようにコンパイル、実行できてしまうんですよね~

@Override なんかと同じでただの注釈なのかなぁ・・・

メリットが良く解らんぜよw

Virtual Extension Methods は以前にも試したんだけど default キーワードのつく位置が変わったの(決められた)のかな。

さて、それでは試してみます。

jp\yucchi\myfunctionalinterface\MyFunctionalInterface.java

実行結果は次のとおりです。

run:
hoge
foo
bar
BUILD SUCCESSFUL (total time: 0 seconds)

実行結果からみて Functional Interface の動作は定義されているとおりに問題なく動いているようです。

Functional Interface の定義については長くなりますのでググってみてください。

日本語で詳しく説明されているサイトが見つかるはずです。

今回のプログラムでは

Object クラスのこの二つのメソッドがあっても問題ないこと、

この Virtual Extension Methods の default 実装があっても Functional Interface の機能を問題なく実行できることを証明しました。

ちゃんとラムダ式で動いてます。(^_^)

実行結果からちゃんと二つの Virtual Extension Methods も動いているのが解ります。

Java 8 の正式リリースが楽しみですね(*^▽^*)

Hatena タグ: ,

Java 8 Date and Time API の素敵なコード

Java

Java 8 で採用される Lambda よりもひょっとしたら素敵な Date and Time API の素晴らしい使い方をネットで見つけました。

NetBeans 8 Dev を使って Lambda で遊ぶ その2 で Date and Time API を使って年齢を取得しました。

今日、ネットサーフィン(死語)で素晴らしいコードを見つけたのでそれを使ってみました。

変更前のコード

変更後のコード

とてもすっきりしてますね(^_^)

この情報は日本語でこちらのサイトの記事を参考にさせていただきました。

年齢を計算する、java.util.Calendarとjava.time.LocalDateとで

詳しく丁寧に解説されていますので興味のある方は参考に!

ちなみに、私は年齢の繰り上がる日時を今の今まで思い違いをしてました( ̄。 ̄;)

Hatena タグ:

Lambda の罠

Java

このところ Java 8 で注目の Lambda を NetBeans 8 Dev を使ってネットから情報収集して楽しんでます。

今回は絶対はまりそうなコードを紹介します。

Lambda に興味がある人は既にご存じかと思いますが、なかなか面白そうなのでよかったら見てください。

では次のプログラムを実行したらどうなるでしょうか?

jp\yucchi\mylambda_2\MyLambda_2.java

簡単じゃないかと思ったあなた!

正解です。(^_^)

私のコンピュータでの実行結果は次のようになります。

run:
true
true
true
BUILD SUCCESSFUL (total time: 0 seconds)

では、このプログラムの WOW 定数をもっと大きな値にしてみたらどうなるでしょうか?

11 private final static int WOW = 10_000;

それでは実行してみます。

run:
true
false
true
BUILD SUCCESSFUL (total time: 0 seconds)

とても素敵な結果が表示されました。(;゜ロ゜)

たぶん、感の鋭い方なら 25 行目のコードをみただけでこのような結果になるのは容易に想像できたでしょう。

これって絶対はまりそうな気がするのは私だけでしょうか?

Hatena タグ:

« 古い記事 新しい記事 »