Java 8 のストリーム API:collect() メソッドを使用してコレクションを Map オブジェクトとして収集する方法

WBOY
リリース: 2023-07-31 15:24:19
オリジナル
1845 人が閲覧しました

新しい Stream API が Java 8 で導入され、コレクション データをより効率的かつ簡潔に処理する方法が提供されます。 Stream API は、データを処理および変換するためのさまざまなメソッドを提供します。その中で、collect()メソッドは、最も重要で一般的に使用されるメソッドの 1 つです。この記事では、collect()メソッドを使用してコレクションを Map オブジェクトに収集する方法を説明し、対応するコード例を示します。

Java 8 より前は、コレクションを Map オブジェクトに変換したい場合、面倒なトラバーサル操作と追加操作を使用する必要がありました。 Java 8 では、Stream API のcollect()メソッドを使用して、この目標をより簡単に達成できます。

collect()メソッドは、Stream API の終了操作の 1 つであり、Collectorパラメータを受け取り、収集方法を指定します。 Map オブジェクトとして収集する場合は、Collectors.toMap()メソッドを使用して収集できます。

以下は、collect()メソッドを使用してコレクションを Map オブジェクトに収集するサンプル コードです。

import java.util.*; import java.util.stream.Collectors; public class StreamCollectExample { public static void main(String[] args) { List fruits = Arrays.asList("apple", "banana", "orange"); Map fruitLengthMap = fruits.stream() .collect(Collectors.toMap( fruit -> fruit, // Key 映射函数 fruit -> fruit.length() // Value 映射函数 )); System.out.println(fruitLengthMap); } }
ログイン後にコピー

上記のコードでは、最初に3 つのフルーツを含むコレクションfruitsを収集し、stream()メソッドを介してストリームに変換します。次に、collect()メソッドを使用し、パラメータとしてCollectors.toMap()メソッドを渡します。このメソッドは、キーと値のマッピング関数を指定するための 2 つのラムダ式パラメータを受け取ります。

この例では、キー マッピング関数はfruit ->fruitで、フルーツをキーとして受け取り、値マッピング関数はfruit ->fruit.length( )、つまり果物の長さが値として使用されます。最後に、collect()メソッドは、指定されたマッピング関数に従ってストリーム内の要素を処理し、Map オブジェクトを返します。

出力結果は次のとおりです。

{orange=6, banana=6, apple=5}
ログイン後にコピー
ログイン後にコピー

ご覧のとおり、最終的に果物とその長さを含む Map オブジェクトを取得しました。

基本的なコレクション関数に加えて、Collectors.toMap()メソッドは他のパラメーターも提供します。たとえば、競合を解決するマージ関数を渡すことで、キーが重複した場合に何をすべきかを指定できます。

以下は、キーの競合処理を含むサンプル コードです:

import java.util.*; import java.util.stream.Collectors; public class StreamCollectExample { public static void main(String[] args) { List fruits = Arrays.asList("apple", "banana", "orange", "apple"); Map fruitLengthMap = fruits.stream() .collect(Collectors.toMap( fruit -> fruit, // Key 映射函数 fruit -> fruit.length(), // Value 映射函数 (length1, length2) -> length1 // Key 冲突处理函数 )); System.out.println(fruitLengthMap); } }
ログイン後にコピー

上記のコードでは、toMap()メソッドの 3 番目のパラメーターの位置を入力します。マージ関数(length1, length2) -> length1が作成されます。この関数は、重複したキーが見つかった場合に最初のキーを保持し、後続のキーを無視することを選択します。

出力結果は次のとおりです。

{orange=6, banana=6, apple=5}
ログイン後にコピー
ログイン後にコピー

Key の競合が発生した場合、最初に出現した Key のみが保持され、他の Key は無視されることがわかります。

Stream API のcollect()メソッドを使用すると、コレクションを Map オブジェクトとして簡単に収集でき、Key と Value のマッピング関数や競合を処理する方法。このようにして、収集データをより柔軟に処理し、コードの読みやすさと効率を向上させることができます。

上記は、Java 8 でcollect()メソッドを使用してコレクションを Map オブジェクトに収集するための概要とサンプル コードです。この記事が Stream API の使用方法を理解するのに役立つことを願っています。

以上がJava 8 のストリーム API:collect() メソッドを使用してコレクションを Map オブジェクトとして収集する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!