LoginSignup
5

More than 5 years have passed since last update.

Java ラムダ式のバリエーション

Posted at

Java8で導入されたラムダ式について、書き方のバリエーションを調べました。
迷った時に簡単に参照出来るよう、表形式で網羅しておくことにします。

ラムダ式のバリエーション

No. 記述法 説明
1 () -> System.out.println("foo") 引数なし
2 (n) -> System.out.println(n) 引数あり(括弧で囲う)
3 (int n) -> System.out.println(n) 引数あり(括弧で囲う+型明記)
4 n -> System.out.println(n) 引数あり(括弧で囲わない)
※引数が一つの場合のみ括弧の省略可能
5 (m, n) -> m+n 引数あり(複数個)
6 (int m, int n) -> m+n 引数あり(複数個+型明記)
7 (n) -> { return n * 2;} ステートメント型のラムダ式

サンプルコード

上記のサンプルコードです。

// No.1 引数なし
Runnable lambda1 = () -> System.out.println("foo");
// No.2 引数あり(括弧で囲う)
IntConsumer lambda2 = (n) -> System.out.println(n);
// No.3 引数あり(括弧で囲う+型明記)
IntConsumer lambda3 = (int n) -> System.out.println(n);
// No.4 引数あり(括弧で囲わない) ※引数が一つの場合のみ括弧の省略可能
IntConsumer lambda4 = n -> System.out.println(n);
// No.5 引数あり(複数個)
IntBinaryOperator lambda5 = (m, n) -> m+n;
// No.6 引数あり(複数個+型明記)
IntBinaryOperator lambda6 = (int m, int n) -> m+n;
// No.7 ステートメント型のラムダ式
IntUnaryOperator lambda7 = (n) -> { return n * 2;};

参考元

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
5