lambda累加求和

一、关键方法

// 整形
 list.stream().mapToInt(a->a.getCount()).sum()

// double类型
list.stream().mapToDouble(a->a.getWeight()).sum();

// Long类型
list.stream().mapToLong(a -> a.getPri()).sum();

// BigDecimal类型
list.stream().map(Animal::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);

二、案例

1)实体类

@Data
public class Animal {

    private String name;

    private Integer count;

    private Double weight;

    private Long pri;

    private BigDecimal money = BigDecimal.ZERO;
}

2)测试方法

 public static void main(String[] args) {
        List<Animal> list = getAnimal();
        //累加
        int sumInt = list.stream().mapToInt(a -> a.getCount()).sum();
        System.out.println("int类型累加:" + sumInt);

        double sumDouble = list.stream().mapToDouble(a -> a.getWeight()).sum();
        BigDecimal bigDecimalDouble = new BigDecimal(sumDouble).setScale(2, BigDecimal.ROUND_HALF_UP);
        System.out.println("double累加,并且保留两位小数:" + bigDecimalDouble);

        long sumLong = list.stream().mapToLong(a -> a.getPri()).sum();
        System.out.println("long类型累加:" + sumLong);

        BigDecimal bigDecimalSum = list.stream().map(Animal::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
        System.out.println("BigDecimal类型累加:" + bigDecimalSum);
    }

    public static List<Animal> getAnimal() {
        List<Animal> animals = new ArrayList<>();
        Animal animal1 = new Animal();
        animal1.setName("猪");
        animal1.setCount(2);
        animal1.setWeight(150.321d);
        animal1.setPri(2003L);
        animal1.setMoney(new BigDecimal(5));
        animals.add(animal1);

        Animal animal2 = new Animal();
        animal2.setName("羊");
        animal2.setCount(1);
        animal2.setWeight(100d);
        animal2.setPri(1003L);
        animal2.setMoney(new BigDecimal(10));
        animals.add(animal2);
        return animals;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值