TECH I.S.

Java ラムダ式


Java ラムダ式

ラムダ式は Java 8 で追加されました。

ラムダ式は、パラメーターを受け取って値を返す短いコード ブロックです。ラムダ式はメソッドに似ていますが、名前は必要なく、メソッドの本体に直接実装できます。


構文

最も単純なラムダ式には、1つのパラメーターと式が含まれます。

parameter -> expression

複数のパラメーターを使用するには、それらを括弧で囲みます。

:::example {.techis-example}
:::code {.techis-code .notranslate .techis-white}
(parameter1, parameter2) -> expression
:::code
:::example

式には制限があります。すぐに値を返す必要があり、変数や代入、ifforのような文は使えません。より複雑な操作を行うためには、中かっこでコードブロックを使用します。ラムダ式が値を返す必要がある場合、コードブロックにreturn文を記述する必要があります。

(parameter1, parameter2) -> { code block }



ラムダ式の使用

通常、ラムダ式はパラメーターとして関数に渡されます。

ArrayListforEach()メソッドでラムダ式を使用して、リスト内のすべての項目を表示します。
import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(5); numbers.add(9); numbers.add(8); numbers.add(1); numbers.forEach( (n) -> { System.out.println(n); } ); } }

自分で試してみる»

ラムダ式は、変数の型が1つのメソッドしか持たないインターフェースである場合、変数に格納できます。ラムダ式には、そのメソッドと同じ数のパラメータと同じ戻り値の型が必要です。 Javaには、リストで使われるConsumerインターフェイス (java.utilパッケージ)など、この種のインターフェイスが多く組み込まれています。

Java を使用するConsumerラムダ式を変数に格納するためのインターフェース:

import java.util.ArrayList; import java.util.function.Consumer; public class Main { public static void main(String[] args) { ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(5); numbers.add(9); numbers.add(8); numbers.add(1); Consumer<Integer> method = (n) -> { System.out.println(n); }; numbers.forEach( method ); } }

自分で試してみる»

メソッドでラムダ式を使用するには、そのメソッドに単一メソッド インターフェイスを持つパラメータがその型として含まれている必要があります。インターフェイスのメソッドを呼び出すと、ラムダ式が実行されます。

ラムダ式をパラメーターとして受け取るメソッドを作成します。

interface StringFunction { String run(String str); } public class Main { public static void main(String[] args) { StringFunction exclaim = (s) -> s + "!"; StringFunction ask = (s) -> s + "?"; printFormatted("Hello", exclaim); printFormatted("Hello", ask); } public static void printFormatted(String str, StringFunction format) { String result = format.run(str); System.out.println(result); } }

自分で試してみる»



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細