ホームページ  >  記事  >  Java  >  Java ラムダ式

Java ラムダ式

WBOY
WBOYオリジナル
2024-08-30 16:16:201004ブラウズ

ラムダ式は、Java8 で追加された新機能です。基本的には、機能インターフェイスのすべてのインスタンスを説明します。その実装は、抽象関数を 1 つだけ含み、関数インターフェイスを実装する方法で機能します。 Java 8 ラムダ式では、メソッドの引数を作成したり、コード全体をデータとみなすことができます。特定のクラスを持たない関数、つまり抽象クラスを実装できます。この式は次のオブジェクトに渡すことができ、必要なときにいつでも実行できます。ラムダ式は関数と同様に考えることができ、他の関数と同様にパラメーターを受け入れることができます。

構文:

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

lambda_operator -> body

Java ラムダ式のパラメータ

lambda_operator に渡されるパラメータは次のとおりです:

  • # ゼロパラメータ: このパラメータは、関数から引数を渡すことができないことを意味し、以下のように表されます:
  • (): System.out.println(“ゼロラムダ引数”);
  • # 1 つのパラメータ: このパラメータは、関数から引数のいずれかを渡すことができることを意味し、以下のように表されます:
  • (p): System.out.println(“1 つの引数: ” + p);
  • # 複数パラメータ: 名前が示すように、このパラメータはオペレータに複数のパラメータを渡すために使用でき、次のように表されます:
  • (q1, q2): System.out.println(“複数の引数: ” + q1 + “, ” + q2);

なぜ Java ラムダ式が必要なのでしょうか?

ラムダ式は Java 8 で登場し、実行のために渡すことができるコード ブロックの複雑な実行をすべて変換および簡素化しました。これは他の多くのプログラミング言語で使用される非常に一般的な機能であり、Java 8 も同様です。導入後、Java の以前の機能では、戦略的な設計パターンを作成する場合などに、最初にオブジェクトを作成してから、そのオブジェクトを渡す必要がありました。しかし、ラムダ式は関数型インターフェイスの実装を強化するための付加価値であるため、上記の問題の救世主となりました。関数に渡されるゼロ、1、および複数のパラメーターを持つプログラムの本体を指す lambda_operator 関数により、実装が簡素化されました。また、作成され、定義されたクラスに属さない関数も利用します。全体をデータとみなす関数のメソッド引数として機能を採用できる非常に優れた機能を持っています。

Java 8 のラムダ式は非常に強力で、非常に説得力があります。最終出力のために関数インターフェースに関連するオブジェクトを変換することを強くお勧めします。

Java ラムダ式はどのように機能しますか?

どの式にも隠れた動作パターンがあるため、ラムダ式として、次のように表される動作パターンも保持しています。

(int arg_a, String arg_b)
{System.out.println("two arguments"+ arg_a+" and "+arg_b);}

これら 2 つの引数 int arg_a と String arg_b は、引数が 0 つ、引数が 1 つ、または 2 つ以上の引数、つまり複数の引数を含む引数のリストを構成します。これらの引数は引数リストとして、アロー トークンの助けを借りてラムダ式の本体に渡されます。この矢印トークンとその引数リストはラムダ本体の後に継続的に続きます。また、この形式のラムダ式は、その実装に関数型インターフェイスをさらに利用します。ただし、複数の引数リストの場合は、括弧またはコードのブロックを閉じることが必須であり、匿名関数の戻り値の型は、ブロックまたは void のコードを返す必要がある値の型と同じになります。それは返されないか、値を保持しません。

Java ラムダ式の実装例

以下は Java ラムダ式の例です:

例 #1

このプログラムは、ラムダ式を使用せず、四角形のサイズを出力するための抽象クラスを作成することもせずに、インターフェイスの実行を示しています。

コード:

interface Shapes
{
public void rectangle();
}
public class WithoutLambdaExpression {
public static void main(String[] args) {
int size=15;
Shapes wd=new Shapes(){
public void rectangle()
{
System.out.println("Get the shape" +  size );
}
};
wd.rectangle();
}
}

出力:

Java ラムダ式

例 #2

このプログラムは、ラムダ式を使用した関数インターフェイスの作成を示し、それによって形状に必要な出力を提供します。

コード:

interface Shapes{
public void Rectangle();
}
public class UsinglmbdaExpression {
public static void main(String[] args) {
int size=20;
Shapes r8=()->
{
System.out.println("Shapes of all sizes "+ size);
};
r8.Rectangle();
}
}

出力:

Java ラムダ式

Example #3

This program is used to illustrate the Lambda Expression for Java 8 by not passing any parameter implemented just with the function parameter and the associated abstract classes of the implemented functional interface as shown.

Code:

interface SomethingFishy{
public String strange();
}
public class LambdaWithNoArg{
public static void main(String[] args) {
SomethingFishy k=()->{
return "Very Strange View.";
};
System.out.println(k.strange());
}
}

Output:

Java ラムダ式

Example #4

This program illustrates the lambda Expression with the implementation of functional parameters, thereby passing the single parameter from the function of the interface and the lambda expression associated with it.

Code:

interface JuicyFruit{
public String juicy(String name);
}
public class SinglParamLambda
{
public static void main(String[] args)
{
JuicyFruit jf1=(name)->{
return "Kiwi, "+name;
};
System.out.println(jf1.juicy("orange"));
JuicyFruit jf2= name ->{
return "Mango, "+name;
};
System.out.println(jf2.juicy("Pineapple"));
}
}

Output:

Java ラムダ式

Example #5

This program is used to illustrate the Multiple parameter lambda Expression with the functional interface of division and its values to be divided using the class’s div function.

Code:

interface Division{
int div(int p,int q);
}
public class MultiParamLambdaExpression{
public static void main(String[] args) {
Division div1=(p,q)->(p/q);
System.out.println(div1.div(20,40));
Division div2=(int p,int q)->(p/q);
System.out.println(div2.div(400,600));
}
}

Output

Java ラムダ式

Note: Lambda expressions are exclusively used to implement the functional interfaces, and they can contain any type of argument such as zero, two or multiple.

Conclusion

Lambda Expression introduced with Java 8 has simplified the execution of the block of code using the array operator and operator arrow pointing to the lambda body, and then it will be used for implementing the interfaces with the abstract classes associated with each class. Thus, Lambda Expression of Java 8 has really transformed the interface interaction and the implementation of the functions and method easier with the abstract classes.

以上がJava ラムダ式の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。