この記事では、Java 8 でよく使われる組み込み関数の概要 (コード例) を紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。
#一般的に使用される関数インターフェイスは、後で簡単に参照できるように記録されています
パラメータ | # # 戻り値の型#Description | ||
---|---|---|---|
boolean | 特定の値を入力し、特定の値を決定するために使用されるブール値を出力します | Consumer |
|
void | 特定の値を入力しても出力はありません。特定の値を消費するために使用されます | 関数 | T |
特定の種類の値を入力し、型変換などに使用される別の A 型値を出力します。 | サプライヤー | None | |
No入力、出力、特定の値の生成に使用される特定の値 | UnaryOperator | T | |
Input特定の型の値を取得し、同じ Type 値を出力します。これは、値に対する四則演算の実行など、値の同じ型の変換に使用されます。 | BinaryOperator | (T,T) | |
特定の型の 2 つの値を入力し、同じ型の値を出力します。2 つの値を結合する場合などに使用されます。 | Predicates |
Function<string> toInteger = Integer::valueOf; Function<string> backToString = toInteger.andThen(String::valueOf); backToString.apply("123"); // "123"</string></string>SuppliersSuppliers インターフェイスは、指定されたタイプの結果を生成します。関数とは異なり、パラメーターを受け取りません。
Supplier<person> personSupplier = Person::new; personSupplier.get(); // new Person</person>コンシューマコンシューマは、単一の入力パラメータを使用した操作の実行を表します。
Consumer<person> greeter = (p) -> System.out.println("Hello, " + p.firstName); greeter.accept(new Person("Luke", "Skywalker"));</person>コンパレータコンパレータは古いバージョンの Java からアップグレードされ、いくつかのデフォルト メソッドが追加されています。
Comparator<person> comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName); Person p1 = new Person("John", "Doe"); Person p2 = new Person("Alice", "Wonderland"); comparator.compare(p1, p2); // > 0 comparator.reversed().compare(p1, p2); // Stream の一般的なメソッド<h5></h5>Create Stream<p></p><h4 id="既存のデータ構造を-Stream-に変換します">既存のデータ構造を Stream に変換します</h4><h5><pre class="brush:php;toolbar:false">Stream<integer> s = Stream.of(1, 2, 3, 4, 5); Stream<integer> s = Arrays.stream(arr); Stream<integer> s = aList.stream();</integer></integer></integer>
- Through Stream 。 generate() メソッド:
-
// 这种方法通常表示无限序列 Stream<t> s = Stream.generate(SuppLier<t> s); // 创建全体自然数的Stream class NatualSupplier implements Supplier<biginteger> { BigInteger next = BigInteger.ZERO; @Override public BigInteger get() { next = next.add(BigInteger.ONE); return next; } }</biginteger></t></t>
- 他のメソッドを介して返す
-
Stream<string> lines = Files.lines(Path.get(filename)) ...</string>
- 操作オペレーションを各要素のストリームにマップするこれにより、あるストリームから別のストリームへの変換が完了します。 map メソッドによって受け入れられるオブジェクトは Function インターフェイスであり、これは関数インターフェイスです。
<r> Stream<r> map(Function super T, ? extends R> mapper); @FunctionalInterface public interface Function<t> { // 将T转换为R R apply(T t); }</t></r></r>
Usage:
// 获取Stream里每个数的平方的集合 Stream<integer> ns = Stream.of(1, 2, 3, 4, 5); ns.map(n -> n * n).forEach(System.out::println);</integer>
flatMap
Stream<list>> inputStream = Stream.of(Arrays.asList(1), Arrays.asList(2, 3), Arrays.asList(4, 5, 6));
List<integer> integerList = inputStream.flatMap((childList) -> childList.stream()).collect(Collectors.toList());
//将一个“二维数组”flat为“一维数组”
integerList.forEach(System.out::println);</integer></list>
filter メソッドfilter メソッドは、ストリーム内の要素をフィルタリングし、修飾された要素を含む新しいストリームを生成するために使用されます。 フィルター メソッドによって受け入れられるパラメーターは、Predicate インターフェイス オブジェクトです。このインターフェイスは関数インターフェイスです:
Stream<t> filter(Predicate super T>) predicate; @FunctionInterface public interface Predicate<t> { // 判断元素是否符合条件 boolean test(T t); }</t></t>
Use
// 获取当前Stream所有偶数的序列 Stream<integer> ns = Stream.of(1, 2, 3, 4, 5); ns.filter(n -> n % 2 == 0).forEach(System.out::println);</integer>
limit および Skip
Stream<user> stream = users.stream(); Optional<string> userID = stream.filter(User::isVip).sorted((t1, t2) -> t2.getBalance() - t1.getBalance()).limit(3).map(User::getUserID).findFirst(); userID.ifPresent(uid -> System.out.println("Exists"));</string></user>min、maxmin は、整数ストリームの最小値を見つけて、OptionalInt を返すことができます。 max は、整数ストリームの最大値を見つけて、OptionalInt を返すことができます。 これら 2 つのメソッドは終了操作であり、一度だけ呼び出すことができます。 allMatch、anyMatch、noneMatchallMatch: ストリーム内のすべての要素が受信述語と一致し、true を返しますanyMatch: ストリーム内に 1 つの要素が存在する限り、受信述語と一致する場合、trueを返しますnoneMatch: ストリーム内のどの要素も受信述語と一致せず、trueを返しますreduceメソッドreduceメソッドは各要素を適用しますの Stream を一度に BiFunction に送信し、結果を結合します。
reduce メソッドで受け入れられるメソッドは、BinaryOperator インターフェイス オブジェクトです。
Optional<t> reduce(BinaryOperator<t> accumulator); @FuncationalInterface public interface BinaryOperator<t> extends BiFunction<t> { // Bi操作,两个输入,一个输出 T apply(T t, T u); }</t></t></t></t>
使用:
// 求当前Stream累乘的结果 Stream<integer> ns = Stream.of(1, 2, 3, 4, 5); int r = ns.reduce( (x, y) -> x * y ).get(); System.out.println(r);</integer>
以上がJava8でよく使われる組み込み関数のまとめ(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

この記事では、分散アプリケーションを構築するためのJavaのリモートメソッドの呼び出し(RMI)について説明します。 インターフェイスの定義、実装、レジストリのセットアップ、およびクライアント側の呼び出しを詳述し、ネットワークの問題やセキュリティなどの課題に対処します。

この記事では、ネットワーク通信のためのJavaのソケットAPI、クライアントサーバーのセットアップ、データ処理、リソース管理、エラー処理、セキュリティなどの重要な考慮事項をカバーしています。 また、パフォーマンスの最適化手法も調査します

この記事では、カスタムJavaネットワーキングプロトコルの作成を詳述しています。 プロトコルの定義(データ構造、フレーミング、エラー処理、バージョン化)、実装(ソケットを使用)、データシリアル化、およびベストプラクティス(効率、セキュリティ、メンテナ


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Dreamweaver Mac版
ビジュアル Web 開発ツール

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