stream對實體類的數值型字段求和

1.首先創建一個實體類:

import lombok.AllArgsConstructor;
import lombok.Data;

@Data
@AllArgsConstructor
public class Bean {
    private long num1;
    private double num2;
}

2.然後將實體類裝到list裏面,並做如下處理:

import com.google.common.collect.Lists;
import java.util.List;

public class Test {
    public static void main(String[] args) {
        Bean bean1 = new Bean(1, 2);
        Bean bean2 = new Bean(4, 5);
        Bean bean3 = new Bean(7, 8);
        List<Bean> list = Lists.newArrayList(bean1, bean2, bean3);
        
        long total1 = list.stream().map(Bean::getNum1).reduce(Long::sum).get();
        double total2 = list.stream().map(Bean::getNum2).reduce(Double::sum).get();
    }
}

3.查看打印結果,我們希望看到的結果爲 total1 = 12; total2 = 15.0

total1 = 12
total2 = 15.0

結果正確!

4.總結

自己最近在做一個接口需求,數據分別需要從es和druid的內置sql裏面查詢數據,所以需要分別從查詢出來的list裏面合併某一指標的數據,由於量級很大所以用到了該方法,感覺很方便,故寫此博客。也是自己的第一篇,希望大家多多包涵,指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章