StringによるJava 8グループ

Hadoopを学ぶ:

これが私のコードです:

public class StudentData {

    public static List<Student> getData() {

        return Arrays.asList(
            new Student(1, "a1", 1, Arrays.asList("cricket", "football", "basketball")),
            new Student(2, "a2", 1, Arrays.asList("chess", "football")),
            new Student(3, "a3", 2, Arrays.asList("running")),
            new Student(4, "a4", 2, Arrays.asList("throwball", "football")),
            new Student(5, "a5", 3, Arrays.asList("cricket", "basketball")),
            new Student(6, "a6", 4, Arrays.asList("cricket")), new Student(7, "a7", 5, Arrays.asList("basketball")),
            new Student(8, "a8", 6, Arrays.asList("football")),
            new Student(9, "a9", 8, Arrays.asList("tennis", "swimming")),
            new Student(10, "a10", 8, Arrays.asList("boxing", "running")),
            new Student(11, "a11", 9, Arrays.asList("cricket", "football")),
            new Student(12, "a12", 11, Arrays.asList("tennis", "shuttle")),
            new Student(13, "a13", 12, Arrays.asList("swimming"))
        );
    }

}

趣味に基づいて学生をグループ化する方法。私は以下のコードを試しました:

List<Student> data = StudentData.getData();
data.stream().collect(Collectors.groupingBy(s -> s.getHobbies().stream()));

それは正しい答えを与えていません。

ユージーン:

基本的には、左側が趣味、右側が生徒(この場合は逆でも構いません)StreamであるPairAbstractMap.SimpleEntryここで選択します)から作成されたが必要です。

後でそれらに基づいてそれらをグループ化Hobbyします(あなたの場合は文字列です)。

data.stream()
    .flatMap(student -> student.getHobbies().stream().map(hobby -> new SimpleEntry<>(hobby, student)))
    .collect(Collectors.groupingBy(
            Entry::getKey,
            Collectors.mapping(Entry::getValue, Collectors.toList())
));

Entry::getKey キーを取得するメソッド参照であるため、ラムダ式として記述することもできます。

Collectors.groupingBy(entry -> entry.getKey())

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Javaの8グループによると、セットに追加

分類Dev

セパレーターが異なる最初のString属性によるJava 8のグループ化

分類Dev

Java 8とBigDecimalによるグループ化

分類Dev

1対多によるJava 8のグループ化

分類Dev

Java 8によるグループ化の逆

分類Dev

合計条件によるJava8グループ

分類Dev

合計条件によるJava8グループ

分類Dev

Java 8ストリーミング:集約によるグループ化

分類Dev

最小および最大によるJava8ストリームグループ

分類Dev

Java 8でのマップのリストによるグループ化

分類Dev

Javaで各グループの最大の並べ替えやグループによると見つける8

分類Dev

Java 8 Stream APIを使用した範囲によるグループ化

分類Dev

Java 8 groupingBy:単一列による単純なグループ化

分類Dev

java 8 StreamAPIでのグループ化

分類Dev

Java 8:フィールド名によるフィールド値のグループ化

分類Dev

Java8でList <Map <String、Object >>をMap <String、List <Map <String、Object >>にグループ化する方法

分類Dev

オプションの属性によるJava8ストリームのグループ化

分類Dev

複数のフィールドによるJava8ラムダのグループ化

分類Dev

複数のフィールドによるJava8ラムダのグループ化

分類Dev

マップするJava 8グループリスト

分類Dev

によってグループ化Javaの8ストリームの複数

分類Dev

どのようにグループ化し、Java8に削減へ

分類Dev

Java 8によるグループ化、カウント、カスタムオブジェクトへの変換

分類Dev

Java 8ストリームのグループ化

分類Dev

Java 8ストリームグループ

分類Dev

Map <String、Long>の代わりにMap <String、Integer>を返すJava8グループ化関数

分類Dev

Java 8:複数のフィールドでグループ化し、値に基づいてソートする

分類Dev

Java 8:複数のフィールドでグループ化し、値に基づいてソートする

分類Dev

Java8でグループ化の複雑さ

Related 関連記事

  1. 1

    Javaの8グループによると、セットに追加

  2. 2

    セパレーターが異なる最初のString属性によるJava 8のグループ化

  3. 3

    Java 8とBigDecimalによるグループ化

  4. 4

    1対多によるJava 8のグループ化

  5. 5

    Java 8によるグループ化の逆

  6. 6

    合計条件によるJava8グループ

  7. 7

    合計条件によるJava8グループ

  8. 8

    Java 8ストリーミング:集約によるグループ化

  9. 9

    最小および最大によるJava8ストリームグループ

  10. 10

    Java 8でのマップのリストによるグループ化

  11. 11

    Javaで各グループの最大の並べ替えやグループによると見つける8

  12. 12

    Java 8 Stream APIを使用した範囲によるグループ化

  13. 13

    Java 8 groupingBy:単一列による単純なグループ化

  14. 14

    java 8 StreamAPIでのグループ化

  15. 15

    Java 8:フィールド名によるフィールド値のグループ化

  16. 16

    Java8でList <Map <String、Object >>をMap <String、List <Map <String、Object >>にグループ化する方法

  17. 17

    オプションの属性によるJava8ストリームのグループ化

  18. 18

    複数のフィールドによるJava8ラムダのグループ化

  19. 19

    複数のフィールドによるJava8ラムダのグループ化

  20. 20

    マップするJava 8グループリスト

  21. 21

    によってグループ化Javaの8ストリームの複数

  22. 22

    どのようにグループ化し、Java8に削減へ

  23. 23

    Java 8によるグループ化、カウント、カスタムオブジェクトへの変換

  24. 24

    Java 8ストリームのグループ化

  25. 25

    Java 8ストリームグループ

  26. 26

    Map <String、Long>の代わりにMap <String、Integer>を返すJava8グループ化関数

  27. 27

    Java 8:複数のフィールドでグループ化し、値に基づいてソートする

  28. 28

    Java 8:複数のフィールドでグループ化し、値に基づいてソートする

  29. 29

    Java8でグループ化の複雑さ

ホットタグ

アーカイブ