コードをスッキリ書ける!「ラムダ式(Lambda Expression)」とは?
Javaでは、関数のように処理そのものを変数として渡すことができる「ラムダ式」という書き方があります。
主に関数型インターフェースと一緒に使われ、コードをシンプルに保つことができます。
ラムダ式の基本構文
(引数) -> { 処理内容 }
例:1つの引数を2倍にして表示
x -> System.out.println(x * 2)
引数が1つだけなら ()
は省略可能です。
処理が1行だけなら { }
も省略できます。
従来の書き方と比較
// 従来の無名クラス
Runnable r1 = new Runnable() {
public void run() {
System.out.println("Hello!");
}
};
// ラムダ式
Runnable r2 = () -> System.out.println("Hello!");
関数型インターフェースとは?
関数型インターフェースとは、抽象メソッドが1つだけのインターフェースのことです。
ラムダ式はこのようなインターフェースと一緒に使います。
例:オリジナルの関数型インターフェース
@FunctionalInterface
interface Greet {
void sayHello(String name);
}
// ラムダ式で実装
Greet greet = name -> System.out.println("こんにちは " + name + " さん");
greet.sayHello("太郎"); // → こんにちは 太郎 さん
標準ライブラリで使われる例
Javaには、Stream API や Collections などでラムダ式を使える場面がたくさんあります。
import java.util.*;
List names = Arrays.asList("Taro", "Hanako", "Jiro");
names.forEach(name -> System.out.println(name));
よく使う関数型インターフェース
Runnable
:引数なし、戻り値なし
Consumer<T>
:引数あり、戻り値なし
Function<T, R>
:引数あり、戻り値あり
Predicate<T>
:条件を判定(true/false)
まとめ
ラムダ式(Lambda Expression)は、処理内容をそのまま値として渡すモダンな記述方法です。
Java 8以降で導入され、コードの簡潔さ・読みやすさ・柔軟性を大きく向上させます。
関数型インターフェース
とセットで覚えておくと、Javaの新しい書き方がグッと理解しやすくなります!