举个例子拿一个教师给学生开家长会Java实体
解释
stream 流操作集合建立在内存之上非常的快
以下列举 常用的操作方法
@Data
public class OpenClass {
private Integer id;//id
private Integer schoolId;//学校id
private Integer classesId;//班级id
private String className;//班级姓名
private Integer teacherId;//教师Id
private String teacherName;//教师姓名
private Date beginClass;
private Integer iOrder;
private Integer shouldArrive;//应到人数
private Integer actualArrive;//实到人数
}
List<OpenClass> openClassLis = new ArrayList<>();//假设这是很多条数据的集合
//例子1 过滤出应道人数大于10的班级
List<OpenClass> result = openClassLis.stream().filter(openClass -> openClass.getShouldArrive() > 0).collect(Collectors.toList());
//例子2 排序所有班级应到人数(倒序)
List<OpenClass> result = openClassLis.stream().sorted(Comparator.comparing(OpenClass::getShouldArrive)).collect(Collectors.toList());
(List<OpenClass> result = openClassLis.stream().sorted(Comparator.comparing(OpenClass::getShouldArrive).reversed()).collect(Collectors.toList());)
//例子3 筛选出所有的教师名称
List<String> result = openClassLis.stream().map(OpenClass::getTeacherName).collect(Collectors.toList());
//例子4 求出所有的应到人数之和
Integer reduce = openClassLis.stream().map(OpenClass::getShouldArrive).reduce(0, (a, b) -> a + b);
//例子5 打印每次家长会的详情
openClassList.stream().forEach(System.out::print);