Javaストリームを使用してコレクションをグループ化する

A.DUPONCHEL:

私は、次のことを行うきれいに書かれたコードを見つけるのにいくつかの困難に直面します(次の使用例は単なる例です)。

使用事例:

私には学生がいます。各学生は本のコレクションを持っています。本ごとに、どの学生が持っているかを知る必要があります。本は複数の学生が所有できます。

コード:Set<Student>入力Map<Book, Set<Student>>として、出力として作成する必要があります。


ラムダとストリームを使用せずにそれを行う方法を知っていますが、それを使用する方法を学びたいです。

現在、それを達成するために中間の内部クラス(Tuple(Book、Student))を作成しましたが、見た目が汚く、Map<Book, Tuple<Book, Student>>自分のニーズに完全に適合しないを取得しました

students.parallelStream()
    .flatMap(student-> student.getBooks().parallelStream()
        .map(book -> new Tuple(book, student)))
    .collect(Collectors.groupingBy(tuple-> tuple.book, Collectors.toSet()))
ernest_k:

を使用して、Collectors.mapping収集中にタプルを変換できます

Map<Book, Set<Student>> result = students.parallelStream()
        .flatMap(student -> student.getBooks()
                                .parallelStream()
                                .map(book -> new Tuple(book, student)))
        .collect(Collectors.groupingBy(tuple -> tuple.book,
                Collectors.mapping(tuple -> tuple.student, Collectors.toSet())));

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

マップを使用してグループ化するJava8ストリーム/コレクター

分類Dev

Javaストリームを使用したコレクションの属性によってグループ

分類Dev

オブジェクトのリストをグループ化し、Javaコレクションを使用してカウントします

分類Dev

Javaストリーム-キーの条件を使用してコレクションのマップからすべての値をフラット化する方法

分類Dev

ストリームを使用してコレクションのループを条件付きで終了する方法

分類Dev

ストリームコレクターを使用してオブジェクトをグループ化する

分類Dev

java8のストリームgroupingbyを使用した文字列のコレクションによるグループ化

分類Dev

ストリームを使用して、コレクションをマップにグループ化された複数のコレクションに分割する

分類Dev

Java8-ストリームコレクターを使用してマップのリストをグループ化して合計する方法

分類Dev

Java 8ストリームを使用して、異なるタイプの別のコレクションからコレクションを更新する

分類Dev

ストリームを使用してJavaでオブジェクトのコレクションをマップおよびフィルタリングするためのベストプラクティス

分類Dev

一致するフィールドセットを使用してZF2コレクションをカスタムレンダリングする方法

分類Dev

Javaストリームを使用して二重ネストリスト内のプロパティに基づいてコレクションをフィルタリングする方法

分類Dev

Javaでストリームを使用してJSONArrayにコレクション/配列を変換する方法8

分類Dev

java8ストリームを使用してコレクションを構築する

分類Dev

ストリームを使用してコレクション結果をマップする

分類Dev

ラムダプロダクションを使用してJava8でネストされたストリームをフィルタリングする方法

分類Dev

コレクションをJava 8ストリームを使用してソートしてマップに変換する

分類Dev

Java8のストリームとコレクターを使用したコレクションからマップへの変換のカプセル化

分類Dev

書き込み効率の高い「コンパクトストレージを使用してオプションを使用してテーブルを作成する」と「クラスタリング順序ストレージを使用してオプションを使用してテーブルを作成する」のどちらですか。

分類Dev

ダイレクトストリームを使用してKafkaSparkStreamingでコンシューマーグループを指定する方法

分類Dev

linqを使用してIDに基づいてコレクションをグループ化する

分類Dev

linqを使用したコレクションリストからグループ化されたコレクションリストへ

分類Dev

ネストされたコレクションを使用して複数の列をグループ化するLINQ

分類Dev

Scalaコレクションで複数の列を使用してグループ化する方法

分類Dev

ストリームを使用して地図のコレクションをマージする方法

分類Dev

Javaのを使用すると、マップに変換コレクションにストリーム:値として事前定義列挙型を置く方法

分類Dev

戻る前にコレクションストリーム内でコレクションストリームをフィルタリングする

分類Dev

Javaリフレクションを使用してプライベート内部クラスをインスタンス化する

Related 関連記事

  1. 1

    マップを使用してグループ化するJava8ストリーム/コレクター

  2. 2

    Javaストリームを使用したコレクションの属性によってグループ

  3. 3

    オブジェクトのリストをグループ化し、Javaコレクションを使用してカウントします

  4. 4

    Javaストリーム-キーの条件を使用してコレクションのマップからすべての値をフラット化する方法

  5. 5

    ストリームを使用してコレクションのループを条件付きで終了する方法

  6. 6

    ストリームコレクターを使用してオブジェクトをグループ化する

  7. 7

    java8のストリームgroupingbyを使用した文字列のコレクションによるグループ化

  8. 8

    ストリームを使用して、コレクションをマップにグループ化された複数のコレクションに分割する

  9. 9

    Java8-ストリームコレクターを使用してマップのリストをグループ化して合計する方法

  10. 10

    Java 8ストリームを使用して、異なるタイプの別のコレクションからコレクションを更新する

  11. 11

    ストリームを使用してJavaでオブジェクトのコレクションをマップおよびフィルタリングするためのベストプラクティス

  12. 12

    一致するフィールドセットを使用してZF2コレクションをカスタムレンダリングする方法

  13. 13

    Javaストリームを使用して二重ネストリスト内のプロパティに基づいてコレクションをフィルタリングする方法

  14. 14

    Javaでストリームを使用してJSONArrayにコレクション/配列を変換する方法8

  15. 15

    java8ストリームを使用してコレクションを構築する

  16. 16

    ストリームを使用してコレクション結果をマップする

  17. 17

    ラムダプロダクションを使用してJava8でネストされたストリームをフィルタリングする方法

  18. 18

    コレクションをJava 8ストリームを使用してソートしてマップに変換する

  19. 19

    Java8のストリームとコレクターを使用したコレクションからマップへの変換のカプセル化

  20. 20

    書き込み効率の高い「コンパクトストレージを使用してオプションを使用してテーブルを作成する」と「クラスタリング順序ストレージを使用してオプションを使用してテーブルを作成する」のどちらですか。

  21. 21

    ダイレクトストリームを使用してKafkaSparkStreamingでコンシューマーグループを指定する方法

  22. 22

    linqを使用してIDに基づいてコレクションをグループ化する

  23. 23

    linqを使用したコレクションリストからグループ化されたコレクションリストへ

  24. 24

    ネストされたコレクションを使用して複数の列をグループ化するLINQ

  25. 25

    Scalaコレクションで複数の列を使用してグループ化する方法

  26. 26

    ストリームを使用して地図のコレクションをマージする方法

  27. 27

    Javaのを使用すると、マップに変換コレクションにストリーム:値として事前定義列挙型を置く方法

  28. 28

    戻る前にコレクションストリーム内でコレクションストリームをフィルタリングする

  29. 29

    Javaリフレクションを使用してプライベート内部クラスをインスタンス化する

ホットタグ

アーカイブ