GROUPBYの1フィールドにコレクターを使用して、別のフィールドの値をカウントして追加

CleverDev:

私は、GROUPBYつのフィールドに順番にコレクターを使用してカウントし、別のフィールドの値を追加したいと思います。例えば:

これは私のDBテーブルです。

id    host    result    numberof    date
23    host1   24GB         1        2019-05-20
23    host7   10GB         1        2019-04-21
23    host3   24GB         3        2019-05-12
23    host4   10GB         1        2019-04-22

私が何をしたいのか、「のnumberOf」の値をカウントも考慮に入れて、その後、GROUPBY結果の欄にあります。したがって、この場合には、グループ化カウントと値を追加した後:

"24GB": 4
"10GB": 2

どのように行うのか本当にわからない、私はあなたたちが私を助けることができると思います。

Map<String,Long> statusMap = statusList.stream()
            .collect(Collectors.groupingBy(
                Status::getResult,
                Collectors.counting()));
ユージン:
 Map<String,Long> statusMap = statusList.stream()
        .collect(Collectors.groupingBy(
            Status::getResult,
            Collectors.summingLong(Status::getNumberOf)));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=210357&siteId=1