Javaラムダ式をどのように使うのですか
Java のラムダ式は JDK 8 で導入された関数型プログラミングの機能で、コードの簡潔性、可読性、保守性を高めます。ラムダ式は、関数型インターフェイス(抽象メソッドが 1 つしかないインターフェイス)が必要な場合に使用できます。
ラムダ式の基本的な構文は次のとおりです
(parameter_list) -> { lambda_body }
ここで、parameter_list は形式パラメータのリストであり、lambda_body はラムダ式の本体です。
ラムダ式が一般的に用いられる場面を以下に示します。
- メソッドまたは関数インターフェースに引数として渡すことができる。ラムダ式は、関数型インターフェースを必要とするメソッドや関数インターフェースに引数として渡すことができ、匿名内部クラスを記述するのを簡略化できる。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach((Integer number) -> System.out.println(number));
- ラムダ式を使用することで、コレクションの走査操作を簡潔に記述できます。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(number -> System.out.println(number));
- ラムダ式を使用すると、コレクションを簡単にソートできます。
List<Integer> numbers = Arrays.asList(3, 1, 4, 2, 5);
Collections.sort(numbers, (a, b) -> a - b);
- スレッドとコンカレンシー操作Lambda 式を使用することで、スレッドとコンカレンシー操作の記述が簡素化されます。
new Thread(() -> {
System.out.println("Thread is running");
}).start();
ラムダ式は機能インターフェース、つまり抽象メソッドが1つだけのインターフェースでのみ使用できることに注意してください。インターフェースに複数の抽象メソッドがある場合、コンパイラはエラーになります。
ラムダ式はメソッド参照で簡略化できます. ::演算子で既存のメソッドを参照することができます.
ラムダ式には上記のような利用シーンがあり、コードを簡潔で読みやすく、メンテナンス性を向上させることができますが、使用する場合は状況に応じて判断する必要があります。