lambda强大的功能(分页、过滤、排序、减少代码量等等)

如需转载分享,请标明出处,且不用于盈利为目的,谢谢合作!

lambda强大的功能(分页、过滤、排序、减少代码量等等)

情景1.获取某个集合(students)中对象(Student)的某个属性(id)值的集合

List<Student> students = 数据库查的数据;
List ids= students.stream().map(Student::getId).collect(Collectors.toList());

情景2.lambda分页

int pageIndex = queryShowNodeDataDto.getPageNum();//当前页 前端传
int pageSize = queryShowNodeDataDto.getPageSize();//每页显示条数 前端传
int total = (int)tableData.stream().filter(s->!s.isEmpty()).count();//总条数
List<Map<String, Object>> collect = tableData.stream().skip(pageSize * (pageIndex - 1)).limit(pageSize).collect(Collectors.toList());//数据
customPage.setDatalist(collect);//数据 传给前端
customPage.setTotal(total);//总条数 传给前端
customPage.setPageSize(pageSize);//每页显示条数 传给前端
customPage.setPageNum(pageIndex);//当前页 传给前端

情景3.lambda对集合排序

List<Student> students = 数据库查的数据;//需要排序的集合
List<Student> desc = students.stream().sorted(Comparator.comparing(Student::getCreatedTime).reversed()).collect(Collectors.toList());//降序排序
List<Student> asc = students.stream().sorted(Comparator.comparing(Student::getCreatedTime)).collect(Collectors.toList());//降序排序

情景4.对集合模糊查询

List<Student> students = 数据库查的数据;//需要模糊查询的集合
List<Student> select = students.stream().filter(item->item.getName().contains(StringUtils.isNotBlank(name)? name:"")).collect(Collectors.toList());//根据名字模糊查询

情景5.对集合排序并模糊查询

List<Student> students = 数据库查的数据;//需要排序并模糊查询的集合
List<Student> desc = students.stream().filter(item->item.getName().contains(StringUtils.isNotBlank(name)? name:"") ).sorted(Comparator.comparing(Student::getCreatedTime).reversed()).collect(Collectors.toList());

情景6.数组字母小写变大写

List list= Arrays.asList(“a”, “b”, “c”, “d”);
List collect =list.stream().map(String::toUpperCase).collect(Collectors.toList());

情景7.数组所有元素,按某种规律计算

List num = Arrays.asList(1,2,3,4,5);
List collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList());

你可能感兴趣的:(java)