java8 求和

1.BigDecimal求和

对象字段求和

List<Car> list=new ArrayList<>();
BigDecimal sumOfBigDecimals = list.stream()
            .filter(Objects::nonNull)
            .filter(c -> c.getMiles() != null)
            .map(Car::getMiles)
            .reduce(BigDecimal.ZERO, BigDecimal::add);

BigDecimal集合求和

List<BigDecimal> list=new ArrayList<>();
BigDecimal sumOfBigDecimals = list.stream().reduce(
            BigDecimal.ZERO, BigDecimal::add);

2.int求和

数组求和

int[] arr = {1, 2, 3};
int sum = Arrays.stream(arr).sum();

集合求和

List<Integer> list= new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
int sum = list.stream().reduce(Integer::sum).orElse(0);

对象字段求和

List<User> list= new ArrayList<>();
User hzx1 = new User(1, "hzx1");
User hzx2 = new User(2, "hzx2");
User hzx3 = new User(8, "hzx3");
// 将三个元素同时写入集合
Collections.addAll(list, hzx1, hzx2, hzx3);
// 计算元素之和
int sum = list.stream().mapToInt(User::getId).sum();

你可能感兴趣的:(java,运维,java)