Javaでのラムダ式:ガイド
JavaでLambda式を使用する方法
メソッドを宣言するために使用する必要のある冗長なJava構文がなければ、一部のメソッドが1行に収まると思ったことはありませんか。あなただけではありません。
メソッドは、プログラミングにおいて非常に便利な機能です。
メソッドは、プログラムで特定のことを行うコードのブロックです。メソッドを定義すると、それを複数回呼び出すことができるため、これらが使用されます。これにより、コードの冗長性が減り、コードの保守が容易になります。
このガイドでは、Javaのラムダ式について説明します。これらは、ラムダ式と呼ばれる使用できる特殊なタイプのメソッドであり、関数型インターフェースを実装します。それらがどのように機能し、なぜ使用されるのかについて説明します。
機能インターフェイスとは何ですか?
ラムダ式について説明する前に、関数型インターフェースについて理解する必要があります。これらは、1つの抽象メソッドのみを含むインターフェースです。機能インターフェイスに含まれる1つの抽象メソッドは、インターフェイスの目的を示します。
この例を考えてみましょう:
interface CalculateThree { double multiply_by_three(String day); }
CalculateThreeというインターフェースを作成しました。このインターフェースには、multiply_by_three
という1つのメソッドしかありません。 、これは機能的なインターフェイスであることを意味します。
Java Lambda式とは何ですか?
ラムダ式は名前のないメソッドです。これは、機能インターフェイス内で定義されたメソッドを実装するために使用されます。ラムダ式は、名前がないため、匿名メソッドと呼ばれることもあります。
参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。
平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。
ラムダ式は、矢印演算子を使用して2つのセクションに分割します。
(parameter list) -> lambda body
左側には、式が使用するパラメーターが含まれています。右側には、Lambda式の実行時に実行されるコードが含まれています。 Lambda関数は、単一のパラメーターまたは複数のパラメーターを受け入れることができます。
ラムダ式の使用方法
ユーザーが挿入した数を取り込んで、それを3倍にするプログラムを作成しましょう。まず、ユーザーからの番号を受け入れるコードを記述します。
import java.util.Scanner; class Main { public static void main(String args[]) { Scanner user_input = new Scanner(System.in); System.out.println("Insert a number to multiply by three: "); double user_number = user_input.nextDouble(); } }
このコードを実行すると、乗算する数値を挿入するようにユーザーに求められます。このプログラムは、その数値を変数「user_number」に読み込みます。 Scannerクラスの仕組みについて詳しくは、JavaScannerのチュートリアルをご覧ください。
次に、ラムダ式を定義して、数値に3を掛けます。 main
の上に次のコードを貼り付けます 方法:
interface CalculateThree { double multiply_by_three(double number); }
このコードは、ラムダ式が参照するインターフェースを定義します。次に、クラスのメインメソッドの下部に次のコードを追加します。
CalculateThree multiply = (number) -> number * 3; double answer = multiply.multiply_by_three(user_number); System.out.println(user_number + " multiplied by three is " + answer);
「multiply」と呼ばれる変数を宣言するためにCalculateThreeインターフェースを使用しました。これにより、ラムダ式のコードが格納されます。ラムダ式はmultiply_by_three
に関連付けられています multiply_by_three
のため、CalculateThreeインターフェースで インターフェイスの唯一の機能です。
次に、ドット表記を使用してこの関数を呼び出しました:
multiply.multiply_by_three(user_number);
ドット表記では、参照するクラスまたはインターフェイスの名前、ドット、アクセスするメソッドの名前を指定します。この場合、multiply_by_three
にアクセスします。 「乗算」インターフェース内のメソッド。
最終的なコードは次のようになります:
import java.util.Scanner; interface CalculateThree { double multiply_by_three(double number); } class Main { public static void main(String args[]) { Scanner user_input = new Scanner(System.in); System.out.println("Insert a number to multiply by three: "); double user_number = user_input.nextDouble(); CalculateThree multiply = (number) -> number * 3; double answer = multiply.multiply_by_three(user_number); System.out.println(user_number + " multiplied by three is " + answer); } }
コードを実行し、数値3を挿入して乗算します:
Insert a number to multiply by three: 3 3.0 multiplied by three is 9.0
コードは、挿入した数に3を掛けることに成功しました。このアクションは、定義したラムダ式を使用して実行されました。
ブロックラムダ式の使用方法
ラムダ式は、単一の式を使用するか、ブロックを使用するかの2つの形式で表示できます。ブロックラムダ構文は、矢印の右側のコードが複数行を占める場合に使用されます。
ブロック構文は、ラムダ式の右側のコードを中括弧({})で囲む場所です。
この例を考えてみましょう:
interface GreetUser { String welcome_user(String name); } class Main { public static void main(String args[]) { GreetUser send_greeting = (name) -> { System.out.println("Good morning!"); System.out.println("Welcome, " + name); }; System.out.println(send_greeting.welcome_user("Brad")); } }
send_greeting
というラムダ式を宣言しました 。この式は、プログラムの開始時に定義したインターフェースGreetUserを参照します。ラムダ式は2つのアクションを実行します。これ:
- 「おはようございます!」と印刷しますコンソールへ
- 「ようこそ」に続いてユーザー名をコンソールに出力します
これには2行のコードが必要なため、ブロック構文を使用しました。ラムダ式の右側のコードは中括弧で囲まれています。
結論
ラムダ式は、関数型インターフェースを実装する名前のないメソッドです。これらの関数は、名前がなく、単独で実行されないため、匿名クラスまたは関数と呼ばれることもあります。
挑戦しますか?数値が偶数かどうかをチェックするラムダ式を記述します。そうである場合は、「Xは偶数」をコンソールに出力する必要があります。ここで、Xはテスト対象の番号です。それ以外の場合は、「Xは奇数です」とコンソールに出力する必要があります。
これで、エキスパートのようにJavaでラムダ式を操作する準備が整いました。
-
Javaコンパイラ:ステップバイステップガイド
5年から10年前は、Javaの学習は今ほど利用しやすくありませんでした。当時は、マシンで実行するコンパイラとインタプリタを含むJava Development Kit(JDK)をダウンロードする必要がありました。現在、オンラインで無料で利用できるJavaコンパイラが多数あります。この記事では、Java言語のコンパイルがどのように機能するか、およびプロジェクトを実践および作成するためにオンラインで利用できるいくつかのツールについて少し説明します。 Javaプログラムはどのように実行されますか? Javaは完全にコンパイルされたプログラミング言語ではありません。ただし、完全に解釈され
-
Javaのインターフェース
インターフェースはJavaの参照型です。クラスに似ています。これは、抽象的なメソッドのコレクションです。クラスはインターフェースを実装し、それによってインターフェースの抽象メソッドを継承します。 インターフェイスには、抽象メソッドに加えて、定数、デフォルトメソッド、静的メソッド、およびネストされた型も含まれる場合があります。メソッド本体は、デフォルトのメソッドと静的メソッドにのみ存在します。 インターフェイスの作成は、クラスの作成に似ています。ただし、クラスはオブジェクトの属性と動作を記述します。また、インターフェースには、クラスが実装する動作が含まれています。 インターフェイスを実装す