Java で関数プログラミングに Lambda 関数を使用する方法

WBOY
リリース: 2023-06-26 16:04:37
オリジナル
878 人が閲覧しました

関数型プログラミングは、従来の命令型プログラミングにおけるステートメントや命令ではなく、関数の使用と組み合わせに重点を置く非常に人気のあるプログラミング パラダイムです。 Java 8 で追加された Lambda 関数により、Java での関数プログラミングが容易になります。この記事では、Lambda 関数の基本と、関数プログラミングでの Lambda 関数の使用方法について説明します。

  1. Lambda 関数の定義
    Lambda 関数は、パラメーターと戻り値を受け取り、オブジェクトのように渡すことができる未宣言のメソッドです。 Lambda 関数の定義形式は (パラメータ) -> 式、または (パラメータ) -> {ステートメント;} です。このうち、パラメータはパラメータのリストのセットであり、式またはステートメントは Lambda 関数によって実行されるコードを表します。

たとえば、次は単純な Lambda 関数定義です:

(int a, int b) -> a b

この Lambda 関数は 2 つの整数を受け取りますa と b をパラメータにし、それらの合計を返します。

  1. Lambda 関数の型
    Lambda 関数の型は、パラメーターの型と戻り値の型で構成されます。 Java では、この関数型はメソッドを 1 つだけ持つインターフェイス型として表されます。たとえば、2 つの整数の合計を計算する関数インターフェイスを次に示します。

@FunctionalInterface
interface Sum {
int sum(int a, int b);
}

このインターフェイスにはメソッド sum() が 1 つだけあり、その戻り値は整数で、2 つの整数パラメータを受け取ります。

  1. Lambda 関数の応用
    Java では、フィルタリング、マッピング、リダクションなどのコレクションおよびストリーム操作で Lambda 関数がよく使用されます。 Lambda 関数の一般的な使用シナリオは次のとおりです:

3.1. フィルター (フィルター)
Lambda 関数を使用してコレクション内のフィルター操作を実装できます。例:

List数値 = Arrays.asList(1, 2, 3, 4, 5);
ListevenNumbers =数値.stream().filter(n -> ; n%2==0).collect(Collectors.toList());

この例では、stream() メソッドを使用して List を Stream オブジェクトに変換し、filter( ) メソッドを使用して要素をフィルタリングし、最後にcollect() メソッドを使用して結果を List オブジェクトに変換します。

3.2. Map
コレクション内のマッピング操作は、Lambda 関数を使用して実装できます。例:

List names = Arrays.asList("John", "Mary", "James", "David");
List nameLengths = names.stream() .map(String::length).collect(Collectors.toList());

この例では、stream() メソッドを使用して List を Stream オブジェクトに変換し、次に、map( ) メソッドをマッピングに変換し、最後にcollect() メソッドを使用して結果を List オブジェクトに変換します。

3.3. Reduce
コレクション内のリダクション操作は、Lambda 関数を使用して実装できます。例:

List数値 = Arrays.asList(1, 2, 3, 4, 5);
int sum =数値.stream().reduce(0, (a, b ) -> a b);

この例では、stream() メソッドを使用して List を Stream オブジェクトに変換し、次に、reduce() メソッドを使用して要素を減らし、最後にそれらの合計を取得します。 。

  1. Lambda 関数の利点
    Lambda 関数の利点は次のとおりです:

4.1. 関数型プログラミングとオブジェクト指向プログラミングの組み合わせ
Lambda 関数は次のことを行います。関数型プログラミングとオブジェクト指向プログラミングの統合が容易になり、Java 言語のオブジェクト指向プログラミング機能をより活用できるようになり、関数型プログラミング手法を組み合わせて使用​​することもできます。

4.2. 高い可読性と保守性
Lambda 関数は、プログラムの意図とロジックをより適切に示すことができる、簡潔、明確、読みやすいコード構造です。 Lambda 関数を使用すると、大量のデータを処理する場合のコードの保守性と可読性が向上します。

4.3. 並列化
Java 8 の Stream API の Lambda 関数は並列化操作を簡単に実装できるため、マルチコア プロセッサをより有効に活用し、プログラムのパフォーマンスを向上させることができます。

結論

Lambda 関数は、Java 8 の非常に重要な機能です。これにより、Java での関数型プログラミングのアプリケーションがよりスムーズになり、読みやすく、書きやすくなります。 Java では、関数型プログラミングに Lambda 関数を使用すると、最新のコンピューターのマルチコア処理能力をより有効に活用できるため、プログラムのパフォーマンスと可読性が向上します。

以上がJava で関数プログラミングに Lambda 関数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート