int ageSum = friendList.stream().mapToInt(Friend::getAge).sum(); System.out.println(ageSum); 如果字段类型是Long或者Double,可以调用相应的mapToDouble、mapToLong,如下所示: 4.2 BigDecimal 和Integer、Long、Double类型不同,如果字段类型是BigD
map 函数的作用是将流中的一个值转换成一个新的值,举个例子,我们要将一个 List 转换成 List ,那么就可以使用 map 方法,示例代码: List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); List<String> result = list.stream().map(value -> String.format("String:%s", value)).collect(toList(...
import java.math.BigDecimal; import java.util.Arrays; import java.util.List; public class BigDecimalSumExample { public static void main(String[] args) { // 创建一个包含Double类型元素的列表 List<Double> numbers = Arrays.asList(1.23, 4.56, 7.89); // 使用Stream API对BigDecimal进行求和...
Map<String, BigDecimal> sumByType =transactions.stream() .collect(Collectors.groupingBy(Transaction::getType, Collectors.reducing(BigDecimal.ZERO, Transaction::getAmount, BigDecimal::add))); sumByType.forEach((type, sum)-> System.out.println(type +":"+sum)); }privatestaticList<Transaction>create...
BigDecimal sum= scores.stream().reduce(BigDecimal::add).orElse(newBigDecimal(0.00)); 二、泛型为实体类 对单个属性求和 Integer sum =sales.stream().mapToInt(Sale::getOrderNum).sum(); Long sum=sales.stream().mapToLong(Sale::getOrderNum).sum(); ...
int sum=list.stream().mapToInt(User::getAge).sum(); 输出结果 73 第二种 需要把Demo改成 代码语言:javascript 代码运行次数:0 运行 代码语言:javascript 代码运行次数:0 运行 AI代码解释 privateBigDecimal age;List<User>list=newArrayList<User>();User u1=newUser("pangHu",newBigDecimal("18"));User...
// 获得列表对象金额, 使用reduce聚合函数,实现累加器 BigDecimal sum = myList.stream() .map(User::getMoney) .reduce(BigDecimal.ZERO,BigDecimal::add); 4)求年龄平均值 //求年龄平均值 double avgAge = list.stream().collect( Collectors.averagingInt(User::getAge)); ...
BigDecimal sum=list.stream().map(User::getNum1).reduce(BigDecimal::add).get(); System.out.println(sum); } 结果: 但是如果列表是中没有数据list.size()==0的时候会报错,所以需要将代码修改成如下: BigDecimal sum=list.stream() .map(User::getNum1) //返回num1的列表 ...
int sumVal = userList.stream().map(User::getAge).reduce(0,Integer::sum);计算元素总和的方法其中暗含了装箱成本,map(User::getAge) 方法过后流变成了 Stream 类型,而每个 Integer 都要拆箱成一个原始类型再进行 sum 方法求和,这样大大影响了效率。针对这个问题 Java 8 有良心地引入了数值流 IntStream, ...
//根据age属性转换成IntStream .mapToInt(Person::getAge) .sum(); 1. 2. 3. 4. 4.选出List集合中创建时间最晚的数据(createtime属性为Date类型) UserInfo userInfoMax = userInfos.stream() .max(Comparator.comparing(UserInfo::getCreateTime)) ...