ラムダ関数またはラムダ式は、Java で匿名メソッドを記述するための明確かつ簡潔な構文を提供する方法です。これらを使用すると、関数型インターフェイスの実装を、より読みやすく表現力豊かな方法で作成できます。
Java のラムダ関数は、パラメーターを受け取り、値を返す短いコード ブロックです。これは本質的に名前のないメソッドであり、機能を引数としてメソッドに渡したり、変数として保存したりできます。
構文
ラムダ関数の基本的な構文は次のとおりです:
(parameters) -> expression
または、複数のステートメントがある場合:
(parameters) -> { // multiple statements }
ラムダ式を使用するには、関数型インターフェイスが必要です。関数型インターフェイスは、抽象メソッドを 1 つだけ持つインターフェイスです。例には、単一の抽象メソッドを備えた Runnable、Callable、およびカスタム インターフェイスが含まれます。
Java のラムダ関数の簡単な例から始めましょう。 Runnable インターフェイスを使用して次のことを説明します。
public class LambdaExample { public static void main(String[] args) { // Traditional way Runnable oldRunnable = new Runnable() { @Override public void run() { System.out.println("Running in a thread!"); } }; new Thread(oldRunnable).start(); // Using Lambda Expression Runnable lambdaRunnable = () -> System.out.println("Running in a thread with Lambda!"); new Thread(lambdaRunnable).start(); } }
出力
Running in a thread! Running in a thread with Lambda!
Lambda 関数は、コレクションを操作する場合に特に便利です。以下は、ラムダ式を使用して文字列のリストを並べ替える例です。
import java.util.Arrays; import java.util.List; public class LambdaListExample { public static void main(String[] args) { List<String> names = Arrays.asList("John", "Jane", "Paul", "Alice"); // Using lambda to sort the list names.sort((name1, name2) -> name1.compareTo(name2)); // Printing sorted names names.forEach(name -> System.out.println(name)); } }
出力
Alice Jane John Paul
ラムダ式は、フィルタリングやマッピングなどの操作のために Java Streams と組み合わせると威力を発揮します。ラムダを使用して整数のリストをフィルタリングおよび処理する方法は次のとおりです。
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; public class LambdaStreamExample { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Filtering even numbers and squaring them List<Integer> squaredEvens = numbers.stream() .filter(n -> n % 2 == 0) .map(n -> n * n) .collect(Collectors.toList()); // Printing the result squaredEvens.forEach(System.out::println); } }
出力
4 16 36 64 100
Java の Lambda 関数は、匿名メソッドと関数型インターフェイスを処理するための、よりコンパクトで表現力豊かな方法を提供します。特にコレクションやストリーム操作を扱う場合、コードが大幅に簡素化され、読みやすさが向上します。
ご質問がある場合、またはさらに詳しい説明が必要な場合は、お気軽に以下にコメントを残してください。
で投稿の詳細をお読みください: Java の Lambda 関数とは何か、および例。
以上がJava の Lambda 関数とは何か、および例。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。