java 8 stream 提供了下面几种类型的求和
Stream::mapToInt
Stream::mapToDouble
Stream::mapToLong
public void test() {
List<Person> people = new ArrayList<>();
people.add(new Person(\"zhangsan\",20));
people.add(new Person(\"lisi\", 26));
people.add(new Person(\"wangwu\",35));
int sum = people.stream()
.mapToInt(p -> p.getAge())
.sum();
System.out.println(\"Total of ages \" + sum);
}
但是没有BigDecimal类型,可以使用下面方法实现
public static void test() {
List<Person> list = new ArrayList<>();
list.add(new Person(\"zhangsan\", 20, new BigDecimal(10.5)));
list.add(new Person(\"lisi\", 26, new BigDecimal(22.2)));
list.add(new Person(\"wangwu\", 35, new BigDecimal(15.54)));
BigDecimal amounts = list.stream().map(item ->
item.getAmount())
.reduce(BigDecimal.ZERO,BigDecimal::add);
amounts = amounts.setScale(1, BigDecimal.ROUND_UP);
System.out.println(\"Total of amounts:\" + amounts);
}
继续阅读与本文标签相同的文章
上一篇 :
自然语言处理中的深度学习发展史和待解难题
-
人脸识别技术发展如花如荼 未来可期
2026-05-18栏目: 教程
-
MaxCompute开发者夏季颁奖礼~久久感谢有你
2026-05-18栏目: 教程
-
第六届世界互联网大会即将举行 乌镇将试行5G自动微公交
2026-05-18栏目: 教程
-
2019全球智能化商业峰会秋季场下周三开幕
2026-05-18栏目: 教程
-
电梯间的“刷屏王”,全力创新抢占商业市场
2026-05-18栏目: 教程
