ホームページ >Java >&#&チュートリアル >Java 8 でストリームを使用してリストをマップに変換するにはどうすればよいですか?

Java 8 でストリームを使用してリストをマップに変換するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-21 00:49:10490ブラウズ

How Can I Convert a List to a Map in Java 8 Using Streams?

Java 8: 変換リスト to Map

Java 8 以降では、サードパーティのライブラリに依存せずに、強力なストリーム API とラムダを使用してオブジェクトのリストをマップに簡単に変換できます。 Java 7 の例を変更してみましょう:

private Map<String, Choice> nameMap(List<Choice> choices) {
    Map<String, Choice> hashMap = choices.stream()
        .collect(Collectors.toMap(Choice::getName, Function.identity()));
    return hashMap;
}

このコードで何が起こっているかを次に示します:

  1. stream() メソッドは、元の List から Choice オブジェクトのストリームを作成します。 .
  2. collect() メソッドはストリームを終了し、要素を収集します。 Map.
  3. Collectors.toMap() コレクターはマップの作成に使用されます。これは 2 つの引数を取ります:

    • 最初の引数は、ストリーム内の各要素をマップのキーにマップする関数です。ここで、Choice::getName は、各選択肢をその名前にマップするために使用されます。
    • 2 番目の引数は、ストリーム内の各要素をマップの値にマップする関数です。この場合、Function.identity() を使用して、元の選択を値として保持します。
  4. 結果の Map は hashMap 変数に格納され、返されます。

このアプローチでは、Java 8 ストリームを活用して、リストをマップに変換するための簡潔で効率的なコードを作成します。

以上がJava 8 でストリームを使用してリストをマップに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。