stream流的使用-获取list集合中对象的单个字段list集合,进行累加操作

时间:2025-04-04 12:49:42
package com.drc.java8.stream.practice; import com.drc.java8.stream.practice.domain.Person2; import org.junit.Test; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; public class ListPersonPractice { // 投资人集合 List<Person> PersonList = new ArrayList<>(); // 初始化投资人 { PersonList.add(new Person2("张三", 11, BigDecimal.valueOf(10000), BigDecimal.valueOf(0.08))); PersonList.add(new Person2("李四", 21, BigDecimal.valueOf(20000), BigDecimal.valueOf(0.18))); PersonList.add(new Person2("王五", 31, BigDecimal.valueOf(30000), BigDecimal.valueOf(0.28))); PersonList.add(new Person2("赵四", 41, BigDecimal.valueOf(40000), BigDecimal.valueOf(0.38))); } /** * 计算 */ @Test public void testCalcAgeAndMoney() { // 计算年龄之和 Integer ages = PersonList.stream().map(Person::getAge).reduce((a, b) -> (a + b)).get(); System.out.println(ages); // money是资产,rateOfReturn 是资产年收益率,计算一年后几人的资产总额 BigDecimal assetsAmt = PersonList.stream().map(person -> person.getMoney().multiply(person.getRateOfReturn().add(BigDecimal.ONE))).reduce(BigDecimal::add).get(); System.out.println(assetsAmt); } }