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

c0nf1ck:

私はこのコードを持っています:

Map<List<Object>, Long> collector = root.getReports().stream().collect(
    Collectors.groupingBy(r -> Arrays.asList(i.X(), i.Y(), i.Z(), i.A()), Collectors.counting()));

for(Entry<Object, Long> entry : collector.entrySet())
    System.out.println(String.format("%s = %s", entry.getKey(), entry.getValue()));

これは基本的にこれを生成します:

[16292, 141, 6, 100] = 2
[16288, 250, 59, 500] = 14
[16286, 250, 91, 50] = 4
[16287, 250, 91, 60] = 29
[16286, 250, 91, 80] = 10
[16293, 141, 6, 100] = 3
[16282, 079, 116, 50] = 9
...

この結果をカスタムクラスに入れる必要があります。これは次のとおりです。

@EqualsAndHashCode @ToString
public class CustomReport implements Serializable {
    private static final long serialVersionUID = 2074900904056768029L;

    @Getter @Setter
    private Integer x, y, z;
    
    @Getter @Setter
    private String a;

    @Getter @Setter
    private Long result;
}

すべてのリストを調べずに手動で行う方法はありますか?

jrook:

これがあなたが望むものかどうかはわかりません。ただしMap<CustomReport, Long>、最初にa Map<List<Object>, Long>作成してからそれを経由してそれらのオブジェクトをターゲットクラスに変換する代わりに直接を取得できます。

前提条件はつまりCustomReport有するべきであるequals()[ 1 ]及びhashCode()[ 2 ]実施します

次に、これを行うことができます:

root.getReports().stream().collect(
    Collectors.groupingBy(i -> new CustomReport(i.X(), i.Y(), i.Z(), i.A()), 
        HashMap::new,
        Collectors.counting()));

私はCustomReport互換性のあるコンストラクタも持っていると仮定しています。セッターで初期化する必要がある場合は、分類子の最初の引数を次のように置き換えることができます。

i -> {
    CustomReport c = new CustomReport();
    c.setX(i.X());
    ...
    return c;
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

オブジェクトによるグループ化-Javaストリーム

分類Dev

カスタムシリアル化によるJavaオブジェクトの外部化のシミュレーション

分類Dev

LinkedHashMapをカスタムJavaオブジェクトに変換する方法

分類Dev

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

分類Dev

Javaの8ストリームオブジェクトを使用して、カスタムマップにリストオブジェクトを変換します

分類Dev

Javaで文字列値をカスタムモデルオブジェクトに変換する方法は?

分類Dev

Javaで文字列値をカスタムモデルオブジェクトに変換する方法は?

分類Dev

リストへのJava 8一覧<地図<文字列、オブジェクトは>> <地図<文字列、オブジェクト>>キーでグループと値でカウント

分類Dev

Streams Java 8を使用してカスタムオブジェクトのリストを単一のリストオブジェクトにマージする

分類Dev

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

分類Dev

オブジェクトのリストをグループ化し、Javaで異なるオブジェクトにサブグループを減らす8

分類Dev

Java 8ストリーミング:オブジェクトのリストを選択したプロパティのリストに変換する方法

分類Dev

タイプリストのオブジェクト属性によってオブジェクトのリストをグループ化するためにJava 8を使用:JAVA

分類Dev

オブジェクトの2つの配列を比較してグループ化してカウントするJava

分類Dev

オブジェクトのコレクションへのJava 8のグループ化

分類Dev

オブジェクトのようなタプルにJavaですることでグループ化

分類Dev

JSON文字列をJavaでカスタムオブジェクトに変換する

分類Dev

Javaストリームとグループ化:オブジェクトを複数のグループに配置

分類Dev

Javaストリームマップは、カウンタを持つオブジェクトを作成します

分類Dev

複数のフィールドのオブジェクトのリストによるグループ化Java 8

分類Dev

属性によってオブジェクトのリストをグループ化する:Java

分類Dev

オブジェクトのグループ化java8

分類Dev

カスタムのネストされたリストXMLをそれぞれのJavaオブジェクトに変換する方法

分類Dev

カスタムのネストされたリストXMLをそれぞれのJavaオブジェクトに変換する方法

分類Dev

Java8ストリームリスト<地図<文字列、オブジェクト>> groupingByとカウント値

分類Dev

Java 8ストリームを使用して、タイプCourseのオブジェクトをMap <Integer、Integer>に変換する方法は?

分類Dev

FirebaseからカスタムJavaオブジェクトへ

分類Dev

カスタムオブジェクトarraylistを使用したJavaでの変数スコープの問題

分類Dev

倍数のソースから構築物オブジェクトは、カスタム関数を8にJAVA

Related 関連記事

  1. 1

    オブジェクトによるグループ化-Javaストリーム

  2. 2

    カスタムシリアル化によるJavaオブジェクトの外部化のシミュレーション

  3. 3

    LinkedHashMapをカスタムJavaオブジェクトに変換する方法

  4. 4

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

  5. 5

    Javaの8ストリームオブジェクトを使用して、カスタムマップにリストオブジェクトを変換します

  6. 6

    Javaで文字列値をカスタムモデルオブジェクトに変換する方法は?

  7. 7

    Javaで文字列値をカスタムモデルオブジェクトに変換する方法は?

  8. 8

    リストへのJava 8一覧<地図<文字列、オブジェクトは>> <地図<文字列、オブジェクト>>キーでグループと値でカウント

  9. 9

    Streams Java 8を使用してカスタムオブジェクトのリストを単一のリストオブジェクトにマージする

  10. 10

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

  11. 11

    オブジェクトのリストをグループ化し、Javaで異なるオブジェクトにサブグループを減らす8

  12. 12

    Java 8ストリーミング:オブジェクトのリストを選択したプロパティのリストに変換する方法

  13. 13

    タイプリストのオブジェクト属性によってオブジェクトのリストをグループ化するためにJava 8を使用:JAVA

  14. 14

    オブジェクトの2つの配列を比較してグループ化してカウントするJava

  15. 15

    オブジェクトのコレクションへのJava 8のグループ化

  16. 16

    オブジェクトのようなタプルにJavaですることでグループ化

  17. 17

    JSON文字列をJavaでカスタムオブジェクトに変換する

  18. 18

    Javaストリームとグループ化:オブジェクトを複数のグループに配置

  19. 19

    Javaストリームマップは、カウンタを持つオブジェクトを作成します

  20. 20

    複数のフィールドのオブジェクトのリストによるグループ化Java 8

  21. 21

    属性によってオブジェクトのリストをグループ化する:Java

  22. 22

    オブジェクトのグループ化java8

  23. 23

    カスタムのネストされたリストXMLをそれぞれのJavaオブジェクトに変換する方法

  24. 24

    カスタムのネストされたリストXMLをそれぞれのJavaオブジェクトに変換する方法

  25. 25

    Java8ストリームリスト<地図<文字列、オブジェクト>> groupingByとカウント値

  26. 26

    Java 8ストリームを使用して、タイプCourseのオブジェクトをMap <Integer、Integer>に変換する方法は?

  27. 27

    FirebaseからカスタムJavaオブジェクトへ

  28. 28

    カスタムオブジェクトarraylistを使用したJavaでの変数スコープの問題

  29. 29

    倍数のソースから構築物オブジェクトは、カスタム関数を8にJAVA

ホットタグ

アーカイブ