Java ラムダ式使い方

2025 年 6 月 11 日 by marukor

ラムダ式とは?

ラムダ式は、「名前のない関数」(=匿名関数)です。
Javaでは主に「関数型インターフェース(1つだけメソッドがあるインターフェース)」の実装を簡潔に書くために使います。

なぜ使う?

クラスやメソッドをわざわざ定義しなくても、処理(関数)をその場で書いて渡せる。
コードが短く・読みやすくなる。

書き方

(引数) -> { 処理 }

x -> x * 2       // x を 2倍にする
(a, b) -> a + b  // a と b を足す
() -> System.out.println("Hello!") // 引数なし

中カッコ {} と return は、1行の処理であれば省略可能です。

ラムダ式の使用例

例1:リストを並び替える(Comparator)

public class Sample {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("banana", "apple", "cherry");

        // ラムダ式を使う
        Collections.sort(list, (a, b) -> a.compareTo(b));

        System.out.println(list);
    }
}

Comparator にラムダ式を渡すことで、短く記述できます。

例2:Streamとラムダ式の組み合わせ

public class StreamExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "avocado", "orange");

        // "a"で始まる果物だけ表示
        fruits.stream()
              .filter(f -> f.startsWith("a"))
              .forEach(f -> System.out.println(f));
    }
}

filter や forEach にラムダ式を使うことで、処理の流れがわかりやすくなります。

関数型インターフェースにラムダ式を使う

@FunctionalInterface
interface Greet {
    void sayHello(String name);
}

public class LambdaDemo {
    public static void main(String[] args) {
        Greet g = (name) -> System.out.println("Hello, " + name);
        g.sayHello("Taro");
    }
}

関数型インターフェースにラムダ式を当てはめることで、無名関数のように使えます。

まとめ

この記事では、Javaのラムダ式の基本と使用例を紹介しました。
ラムダ式は無名関数のように使え、コードを簡潔にできます。
従来の書き方と比べて見通しが良く、特にリスト処理やStreamと相性が良いです。

タグ:

TrackBack