「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

1. ラムダ式とは?

Javaのラムダ式(lambda expression)は、Java 8から導入された記法で、「匿名関数」を簡潔に表現できる仕組みです。
従来の匿名クラスに比べてコードが短くなり、可読性とメンテナンス性
が向上します。

👉 一言で言うと:
「関数をその場で定義して、引数として渡すための便利な書き方」


2. 基本構文

ラムダ式は以下の形式で記述します。

 
(引数) -> { 処理 }

例:匿名クラスとの比較

// 従来の匿名クラス
Runnable task1 = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, World!");
    }
};

// ラムダ式
Runnable task2 = () -> System.out.println("Hello, World!");

👉 これだけで大幅にコードが短縮されます。


3. わかりやすい使用例

例1:リストのソート

import java.util.*;

public class LambdaExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Taro", "Hanako", "Jiro");

        // ラムダ式なし
        Collections.sort(names, new Comparator<String>() {
            public int compare(String a, String b) {
                return a.compareTo(b);
            }
        });

        // ラムダ式あり
        Collections.sort(names, (a, b) -> a.compareTo(b));

        System.out.println(names);
    }
}

例2:Stream APIとの組み合わせ

import java.util.*;

public class StreamExample {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

        // 偶数だけフィルタして2倍にする
        numbers.stream()
               .filter(n -> n % 2 == 0)
               .map(n -> n * 2)
               .forEach(System.out::println);
    }
}
👉 filtermapforEach などのメソッドにラムダ式を渡すことで、処理の流れが直感的に書けます。

4. ラムダ式のメリット

  • コードが簡潔になる(匿名クラスを省略できる)

  • 可読性が向上(処理の意図が明確になる)

  • 関数型プログラミングが可能(Stream APIや並列処理に活用できる)


5. 注意点

  1. 可読性が逆に落ちる場合がある
    短縮できるからといって複雑な処理を1行で書くと理解しづらくなる。
    → シンプルな処理に使うのがベスト。

  2. デバッグが難しくなる
    匿名関数なので、スタックトレースでメソッド名が分かりにくいことがある。

  3. 過剰使用は避ける
    すべてをラムダ式で書こうとせず、読みやすさを重視すること。


6. まとめ

  • ラムダ式は匿名クラスを簡潔に書ける記法

  • Stream APIと組み合わせると真価を発揮

  • シンプルな処理に活用するのがおすすめ

Javaのコードをよりモダンで読みやすくするために、まずは小さな処理からラムダ式を取り入れてみましょう。

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x