ストリームを使用してJava8で値の範囲でグループ化する方法

キャプテン

サンプルシナリオは次のとおりです。

次のような従業員の記録があると想像してください。

name, age, salary (in 1000 dollars)
   a,  20,     50
   b,  22,     53
   c,  34,     79

等々。目標は、さまざまな年齢層(たとえば、21〜30歳と31〜40歳など)の平均給与を計算することです。

私はこれを使用してやりたいのですが、これを行うstreamためにどのように使用groupingByする必要があるのか​​頭を悩ませることはできません。ある種のタプルの年齢範囲を定義する必要があるのではないかと考えています。何か案は?

印刷

以下のコードはあなたが探しているものを与えるはずです。重要なのは、グループ化をサポートする「コレクター」クラスです。

Map<Double,Integer> ageGroup= employees.stream().collect(Collectors.groupingBy(e->Math.ceil(e.age/10.0),Collectors.summingInt(e->e.salary)));

給与が整数であると仮定した図ですが、2倍に簡単に切り替えることができます

完全なプログラムは次のようになります

public static void main(String[] args) {
    // TODO Auto-generated method stub

    List<Employee> employees = new ArrayList<>();
    employees.add(new Employee("a",20,100));
    employees.add(new Employee("a",21,100));
    employees.add(new Employee("a",35,100));
    employees.add(new Employee("a",32,100));


    Map<Double,Integer> ageGroup= employees.stream().collect(Collectors.groupingBy(e->Math.ceil(e.age/10.0),Collectors.summingInt(e->e.salary)));
    System.out.println(ageGroup);
}

public static class Employee {
    public Employee(String name, int age, int salary) {
        super();
        this.name = name;
        this.age = age;
        this.salary = salary;
    }
    public String name;
    public int age;
    public int salary;

}

出力は

{4.0=200, 2.0=100, 3.0=100}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ストリームを使用してJava8で値の範囲でグループ化する方法

分類Dev

forEachラムダループJava8でリストの範囲をチェックしています

分類Dev

java8ストリームを使用してtoMapをtoListにグループ化する方法

分類Dev

LINQを使用して値の範囲でアイテムをグループ化する方法

分類Dev

Java8ストリームでマップされた値を持つリストのネストされたグループ化を取得する方法

分類Dev

Java8ストリームAPIを使用して複数の属性でオブジェクトをグループ化する

分類Dev

Java 8.コレクターを使用して、値のリストを範囲のリストにグループ化します。

分類Dev

Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

分類Dev

Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

分類Dev

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

分類Dev

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

分類Dev

Googleスプレッドシートで数値の範囲を数値範囲のカテゴリにグループ化する方法

分類Dev

Java8でリストの要素を別の要素でグループ化する方法

分類Dev

Java8でリストの要素を別の要素でグループ化する方法

分類Dev

Java8ストリーム-リストをフィルタリングして値を取得する方法

分類Dev

Java8:ストリームを介してリスト値のマップをフィルタリングする方法

分類Dev

Pythonパンダで値のリスト範囲でグループ化する方法

分類Dev

アルファベットの範囲で値によって配列をグループ化する方法

分類Dev

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

分類Dev

Java8ストリームを使用してシングルパスで複数のアイテムをカウントする

分類Dev

JavaストリームでMaxByを使用してグループ化および集計する方法

分類Dev

Java8ストリームを使用してリスト内のアイテムのフィールドに値を追加する方法

分類Dev

ストリームとJava8を使用して、リスト内のオブジェクトを属性ごとに他のリストにグループ化する方法は?

分類Dev

リストを生成する値マッピング関数を使用したJava8リストのグループ化

分類Dev

ストリームを使用して複数の属性でグループ化およびソート:Java 8

分類Dev

Rでggplotlyを使用して、ヒストグラムのツールチップにビン範囲ラベルを追加する方法はありますか?

分類Dev

Java8ストリームを使用してマップのキーでフィルタリングした後、リストにマップ

分類Dev

シェルスクリプトを使用して、ランダムな範囲のディレクトリを特定の順序でグループ化するスクリプト

分類Dev

値がJava 8ストリームとラムダを使用して要素のリストであるマップの値を反復して処理する方法

Related 関連記事

  1. 1

    ストリームを使用してJava8で値の範囲でグループ化する方法

  2. 2

    forEachラムダループJava8でリストの範囲をチェックしています

  3. 3

    java8ストリームを使用してtoMapをtoListにグループ化する方法

  4. 4

    LINQを使用して値の範囲でアイテムをグループ化する方法

  5. 5

    Java8ストリームでマップされた値を持つリストのネストされたグループ化を取得する方法

  6. 6

    Java8ストリームAPIを使用して複数の属性でオブジェクトをグループ化する

  7. 7

    Java 8.コレクターを使用して、値のリストを範囲のリストにグループ化します。

  8. 8

    Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

  9. 9

    Java8ストリームAPIでフィルターとしてグアバ述語を使用する方法

  10. 10

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

  11. 11

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

  12. 12

    Googleスプレッドシートで数値の範囲を数値範囲のカテゴリにグループ化する方法

  13. 13

    Java8でリストの要素を別の要素でグループ化する方法

  14. 14

    Java8でリストの要素を別の要素でグループ化する方法

  15. 15

    Java8ストリーム-リストをフィルタリングして値を取得する方法

  16. 16

    Java8:ストリームを介してリスト値のマップをフィルタリングする方法

  17. 17

    Pythonパンダで値のリスト範囲でグループ化する方法

  18. 18

    アルファベットの範囲で値によって配列をグループ化する方法

  19. 19

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

  20. 20

    Java8ストリームを使用してシングルパスで複数のアイテムをカウントする

  21. 21

    JavaストリームでMaxByを使用してグループ化および集計する方法

  22. 22

    Java8ストリームを使用してリスト内のアイテムのフィールドに値を追加する方法

  23. 23

    ストリームとJava8を使用して、リスト内のオブジェクトを属性ごとに他のリストにグループ化する方法は?

  24. 24

    リストを生成する値マッピング関数を使用したJava8リストのグループ化

  25. 25

    ストリームを使用して複数の属性でグループ化およびソート:Java 8

  26. 26

    Rでggplotlyを使用して、ヒストグラムのツールチップにビン範囲ラベルを追加する方法はありますか?

  27. 27

    Java8ストリームを使用してマップのキーでフィルタリングした後、リストにマップ

  28. 28

    シェルスクリプトを使用して、ランダムな範囲のディレクトリを特定の順序でグループ化するスクリプト

  29. 29

    値がJava 8ストリームとラムダを使用して要素のリストであるマップの値を反復して処理する方法

ホットタグ

アーカイブ