【Java】ラムダ式について調べてみた

Java

Javaのラムダ式(Lambda Expressions)は、Java 8から導入された主要な機能であり、関数型プログラミングの要素をJavaに導入しました。ラムダ式は、無名の関数(匿名関数)を簡潔に記述できる方法です。ラムダ式は、関数型インタフェース(Functional Interface)を実装するためのコードブロックを提供する。

以下にラムダ式の基本的な構文と使用方法を説明します:

  1. ラムダ式の構文: ラムダ式は次の構文を持ちます:
(パラメータリスト) -> { ボディ }
  1. パラメータリスト: ラムダ式が受け入れるパラメータを指定します。パラメータがない場合、空のカッコ () を使用できます。
  2. ボディ: ラムダ式の本体であり、実行されるコードブロックを指定します。
  3. ラムダ式の使用例: ラムダ式は主に関数型インタフェースと一緒に使用されます。関数型インタフェースは、抽象メソッドを1つだけ持つインタフェースです。例: Runnable インタフェースを使用したラムダ式
Runnable task = () -> {
    System.out.println("Hello, Lambda!");
};
  1. このラムダ式は、Runnable インタフェースの run メソッドを実装します。
  2. ラムダ式の利点:
    • 簡潔さ: ラムダ式を使用すると、冗長なコードを削減できます。
    • 関数型プログラミング: ラムダ式は関数型プログラミングの要素を提供し、コードの可読性とメンテナンス性を向上させます。
    • 並列処理: ラムダ式は並列処理(parallel processing)の実装に役立ちます。
  3. 関数型インタフェース: ラムダ式は関数型インタフェースと一緒に使用されます。Java 8の標準ライブラリには、java.util.function パッケージ内で多くの組み込みの関数型インタフェースが提供されています。例えば、ConsumerPredicateFunctionなどがあります。
// Consumerインタフェースを使用したラムダ式
Consumer<String> printString = s -> System.out.println(s);

// Predicateインタフェースを使用したラムダ式
Predicate<Integer> isEven = n -> n % 2 == 0;

// Functionインタフェースを使用したラムダ式
Function<Integer, String> convertToString = n -> "Number: " + n;

ラムダ式はJavaプログラミングの柔軟性を向上させ、関数型プログラミングのパラダイムをサポートします。これにより、コードがより読みやすく、簡潔になり、一部のケースでは効率的な並列処理が可能になります。

タイトルとURLをコピーしました