主要思路是reducing,可以像sql⼀样分组后多列求和处理成新对象等;
select code,max(name)as name,sum(chengJi)as chengJi,sum(age)as age,sum(value)as value from student group by code 将上边sql翻译成java 后为如下代码
@Data
public class Student{ public Student() { }
public Student(String code, String name, Long chengJi, Integer age, BigDecimal value) { this.code = code; this.name = name;
this.chengJi = chengJi; this.age = age; this.value = value; }
private String code; private String name; private Long chengJi; private Integer age;
private BigDecimal value;
}
@Test
public void lambda() {
List studentList.add(new Student(\"a\new BigDecimal(3))); studentList.add(new Student(\"a\new BigDecimal(3))); studentList.add(new Student(\"b\new BigDecimal(3))); List new Student(s.code, s.name, sum.chengJi + sum.chengJi, sum.age + s.age, sum.value.add(s.value))) )).entrySet().stream().map(c -> c.getValue().get()).collect(Collectors.toList()); System.out.println(collect); } 打印结果: [OtherTest.Student(code=a, name=am1, chengJi=2, age=4, value=6), OtherTest.Student(code=b, name=bm1, chengJi=1, age=2, value=3)] 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务