6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javaのラムダ式について

Last updated at Posted at 2019-07-16

長い記事を書こうとしていつまでも書けなかったので、
自分のための記事を書こうと思いました。
既に書き尽くされた感もありますが、初心者向きのメモになります。

ラムダ式とは

ラムダ式 = Java という間違った認識も生みがちですが(個人的偏見)
背景をざっと流してみます。

  • CPUマルチコア化に伴う、スレッドを有効活用する需要
  • Java SE 7 でのFork/Join Framework(分割統治法)を簡単に利用
  • 関数を独立して扱うことが出来る
  • 匿名クラスを簡単に扱える

Javaでの位置づけ

  • 関数型インターフェースを簡単に記述できる
  • 関数型インターフェースとは、1つの抽象メソッドを含むインターフェースのこと
  • Java8では、バックグラウンドでソースコードの自動変換を行い実現
  • 型推論により型の記述も省略すれば、非常にシンプルなコードが書ける
  • Stream を活用するために必要

ただの列記になってしまうので、実際に比較してみます。

書いてみる

メソッド

public class ThisIsSample {
	int res;
	private void calculate(int value1, int value2) {
		res = value1 + value2;
	}
}

無名クラス

ThisIsSample printRunOut = new ThisIsSample() {
  public void prt() {
    System.out.println("sample");
  }
};
printRunOut.prt();

ラムダ式

ThisIsSample printRunOut = () -> {
  System.out.println("sample");
};
printRunOut.prt();

やはりこれだけではよく分かりません。
型推論で省略を復元してくれている、までは分かるのですが、理解したとは言えません。やはり実践しないといけないようですが、今コンパイルが出来ません。(?)
ということで、追って記載したいと思います。

参考情報

Java関数型インターフェース※ラムダ式のまとめもあり
Java8ラムダ式の使い方の基本
[Java] Java8のラムダに超入門(書き方、関数型インターフェース、独自に定義、ラムダ受け取り処理)

追記
Markdown記法 チートシート -Qiita
Markdownで文書を書くためにやったこと一覧 -Qiita
Qiita マークダウン記法 一覧表・チートシート -Qiita

時間がないので、ひとまず挙げときます・・・。
後日修正します。(Streamのこともまだよく分かっていない)

2019.7.16追記
自分は今までサーバー系とは縁がなく、小さな事務所でExcel/Access/VBAを弄ってきました。なぜ今Javaかと言いますと、Javaで構成されたRPAに触れたことで、Web以外で初めてサーバーサイドのシステムに親近感を持てたことが切っ掛けです。
いい加減な記事になってしまいましたが、生暖かく見て頂ますようお願い致します。

6
2
3

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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?