Java のラムダ
ラムダは宣言されていない関数です。つまり、使用するために明示的に宣言する必要はありません。名前、パラメータ、アクセス修飾子、戻り値の型を指定する必要はありません。基本的に、ラムダは単一のメソッドでインターフェイスを実装する簡単な方法です。
Java におけるラムダ関数の基本構文は次のとおりです。
(args) -> (body)
例
(int x, int y) -> { return x * y; } Aluno display = (Pessoa p) -> { System.out.println(p.idade); } () -> System.out.println(new Date()); () -> { return 25.789; } x -> x <p>中括弧は、関数本体に複数のステートメントが含まれる場合にのみ必要です。例:<br> </p> <pre class="brush:php;toolbar:false">(int x, int y) -> { return x * y; }
次のように記述できます:
(int x, int y) -> return x * y;
どちらの形式でも同じ結果が生成されます。
Lambda 関数はパラメーターを持つことも、まったく持たないこともできます。 Java がパラメータの型を推測するため、パラメータの型を省略することもできます。
例
- パラメータ付き関数 (宣言された型付き):
(int x, int y) -> { return x * y; }
- パラメータ付き関数 (宣言された型なし):
(x, y) -> { return x * y; }
- パラメータのない関数:
() -> System.out.println(new Date());
return キーワードが使用されない場合、関数の戻り値の型は void:
として推論されます。
(a) -> this.x = a;
ラムダは匿名クラスとは異なることに注意することが重要です。これは、生成された .class ファイルで確認できます。匿名クラスとは異なり、ラムダは使用ごとに複数の .class ファイルを生成しません。
Java での Lambda のアプリケーション
スレッド
ラムダは、スレッドを操作する際の冗長性を減らすことでコードを簡素化します。
// Implementing the Runnable interface and creating a thread with it Runnable e = new Runnable() { public void run() { System.out.println(new Date()); } }; new Thread(e).start(); // The same implementation using a lambda expression Runnable e = () -> System.out.println(new Date()); new Thread(e).start(); // Even more concise new Thread( () -> System.out.println(new Date()) ).start();
コレクション
ラムダは、コレクション内の並べ替えやフィルター処理などの関数を簡素化します。
// Print all elements in a list List<string> list = Arrays.asList("João", "Ana", "Maria", "Cesar"); for (String s : list) { System.out.println(s); } // Using lambdas list.forEach(s -> System.out.println(s)); // Lambda with multiple statements list.forEach(s -> { if (StringUtils.equals("Cesar", s)) { System.out.println(s); } }); // Conventional sorting Collections.sort(list, new Comparator<string>() { @Override public int compare(String s1, String s2) { return s1.compareTo(s2); } }); list.forEach(p -> System.out.println(p)); // Sorting using lambdas Collections.sort(list, (String s1, String s2) -> s1.compareTo(s2)); list.forEach(p -> System.out.println(p)); </string></string>
リスナー
ラムダは、オブザーバー設計パターンを実装するリスナーのコードを簡素化します。
// Listening to an action on a button in a Swing window button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("Some actions..."); } }); // Using lambdas button.addActionListener((e) -> { System.out.println("Some actions..."); });
汎用関数
ラムダ式をパラメーターとして渡すことで、ラムダを汎用関数で使用して問題を解決できます。
public class Main { /* * A method that tests a condition */ public static void testExpression(List<string> list, Predicate<string> predicate) { list.forEach(n -> { if (predicate.test(n)) { System.out.println(n); } }); } /* * Calling the method with a lambda */ public static void main(String[] args) { List<string> list = Arrays.asList("João", "Ana", "Maria", "Cesar"); // Prints "Cesar" if it exists testExpression(list, (n) -> StringUtils.equals("Cesar", n)); // Prints the entire list testExpression(list, (n) -> true); // Prints nothing testExpression(list, (n) -> false); } } </string></string></string>
以上がJava のラムダの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

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