Java ラムダ式のサンプル分析
1. はじめに
まず第一に、ラムダ式は Java8 の新機能であり、Java プログラミングにおける関数型プログラミングのサポートを提供し、シンプルさを実現します。特にコレクション トラバーサルとコレクション操作については、ほとんどの匿名関数をコードで置き換えることができ、コードが大幅に簡素化されます。
ラムダ式の本体:
関数インターフェイス:
注: ラムダ式は関数インターフェイスで使用する必要があります。関数型インターフェースとは、インターフェース内に抽象メソッドが 1 つだけあるインターフェースを関数型インターフェースと呼び、カスタマイズすることができます。
1. @FunctionalInterface アノテーションはインターフェイスを変更します。この場合、このインターフェイスは関数インターフェイスになります。メソッドは 1 つだけ持つことができます。次は関数インターフェイスです:
@FunctionalInterface public interface MyInteface { void eat(); }
2. If @FunctionalInterfaceは追加されません **注: インターフェイスに抽象メソッドを 1 つだけ記述した場合、それは関数インターフェイスと見なすこともできます:
public interface MyInteface { void eat(); }
これも可能です。
3. 関数型インターフェイスが抽象メソッドを持つだけではない、つまり、オブジェクト クラスのメソッドを継承できる状況は 1 つだけあります:
@FunctionalInterface public interface MyInteface3 { void eat(); @Override String toString(); @Override int hashCode(); }
2. ラムダ式の使用:
1. 通常のメソッドで使用します
Student クラス:
@FunctionalInterface public interface Student { void eat(); }
Test クラス:
public class Test { public static void main(String[] args) { Student stu = new Student() { //普通方法,重写并使用 @Override public void eat() { System.out.println("我是学生"); } }; stu.eat(); //lambda表达式写法: //参数1:重写了Student接口中唯一的那个无参数的eat抽象方法做了具体的实现,所以重写不 需要署名 //参数2:-> 表达式 固定的 //参数3:{具体的实现} 对Student接口中唯一的eat方法做了具体的实现 Student stu2 = () -> { System.out.println("学生吃饭"); }; stu2.eat(); } }
Output:
#2. パラメータ付きのメソッドの使用学生クラス:私は学生です
学生は食べます
@FunctionalInterface public interface Student { void eat(String food); }
public class Test { public static void main(String[] args) { //lambda重写Student接口唯一的有参方法: Student stu2 = (foodName)->{ System.out.println("学生在吃"+foodName); }; stu2.eat("肉"); } }
// 出力: 学生は肉を食べています3. マルチスレッドを実装するラムダ式マルチスレッドの作成方法はマルチの記事で紹介されています-threading (1). ここでは、ラムダを使用してスレッドを作成します:
public class Test { public static void main(String[] args) { Thread t = new Thread(() -> { System.out.println("这个线程是由lambda来创建的"); }); t.start(); } }
関数インターフェイス:
@FunctionalInterface public interface Calculator<T> { T operation(T v1,T v2); }
public class Test { //计算方法 public static Integer operator(Integer v1,Integer v2,Calculator<Integer> calculator){ return calculator.operation(v1, v2); } public static void main(String[] args) { //使用lambda表达式: //这里的意思就是传入两个参数,返回运行后的值 int add = Test.operator(5,10,(x,y)->{ return x+y; }); //简写:可以少写很多代码,比上面更简介了 int num1 = Test.operator(5,10,(x,y)->x+y); int num2 = Test.operator(10,5,(x,y)->x-y); System.out.println(add); System.out.println(num1); System.out.println(num2); } }
15, 15, 55,ラムダ式メソッド リファレンス特定の実装を実現するためにインターフェイス メソッドを書き直す必要がない場合があります。実装できる既存のメソッドがある場合は、メソッド参照を通じて既存のメソッドを参照してメソッドを作成することもできますこの実装の利点は、次のようなコードの再利用です: 関数インターフェイス:
public interface ResultOneParam { int method(int a); }
public class Test { public int addTo(int a){ return a+10; } public static int addTo2(int a){ return a+10; } public static void main(String[] args) { //lambda重写了method方法 ResultOneParam lambda1=(a)->a+10; //方法引用:就是在Test里面的addTo2方法用来替代method被重写的方法 ResultOneParam lambda2= Test::addTo2; int result1= lambda2.method(9); System.out.println(result1); //方法引用 ::引用现成的方法来替代方法重写,这样可以方法重用 Test test=new Test(); ResultOneParam lambda3=test::addTo; int result2= lambda3.method(9); System.out.println(result1); } }
public class Test { public static void main(String[] args) { List<Integer> list = Arrays.asList(5,1,3,4,5,0,9,7,0,1,5); //lambda表达式遍历集合,重写了Consumer接口的方法 list.forEach((element)->{ System.out.println(element); }); //简写: list.forEach(element-> System.out.println(element)); //lambda表达式方法引用,用于遍历输出list集合: list.forEach(System.out::print); //输出list的偶数: list.forEach(element->{ if(element%2==0){ System.out.println(element); } }); } }
以上がJava ラムダ式のサンプル分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4
