利用Java8 stream特性-把字符串集合转为BigDecimal集合并进行求和
核心:
List<String> strings = Lists.newArrayList("20", "33", "10.1", null);
List<BigDecimal> bigDecimals = strings.stream().filter(Objects::nonNull).map(BigDecimal::new).collect(Collectors.toList());
BigDecimal reduce = bigDecimals.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
详细说明:
package com.example;
import com.google.common.collect.Lists;
import java.math.BigDecimal;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
public class BigDecimalDemo {
public static void main(String[] args) {
List<String> strings = Lists.newArrayList("20", "33", "10.1", null);
List<BigDecimal> bigDecimals = strings.stream()
.filter(Objects::nonNull)
.map(BigDecimal::new).collect(Collectors.toList());
BigDecimal reduce = bigDecimals.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
}
}