用JAVA8处理List的方式

 

JAVA8使用.stream()操作List

示例:List list = boMapper.initList(startTime, endTime);

BO对应数据操作对象
list 为结果集

一些特殊的场景Mysql不好处理, 只能通过代码控制,java8新特性Lambda帮助我们在开发中使用精简的几行代码就解决了,不需要特意的去遍历操作数据了

1.设置list中的属性值

代码如下(示例):设置姓名为AAA

list.forEach(demo -> {  
                demo.setName("AAA"); 
            }); 

2.过滤数据

代码如下(示例):过滤姓名不为AAA的

list= list.stream().filter(bo -> !bo.getName.equals("AAA")).collect(Collectors.toList());

3.排序

代码如下(示例):正序

list = list.stream().sorted(Comparator.comparing(BO::getSort)).collect(Collectors.toList());

代码如下(示例):倒序

list = list.stream().sorted(Comparator.comparing(BO::getSort).reversed()).collect(Collectors.toList());

代码如下(示例):多条件正序

list = list.stream().sorted(Comparator.comparing(BO::getSort).thenComparing(KdPost::getAge)).collect(Collectors.toList());

代码如下(示例):多条件倒序

list = list.stream().sorted(Comparator.comparing(BO::getSort).reversed().thenComparing(KdPost::getAge).reversed()).collect(Collectors.toList());

4.分组

代码如下(示例):分组生成多个List

Map> data = list.stream().collect(Collectors.groupingBy(VO::getGroupId));

总结

这单单只是的对list进行处理, java8还可以操作其他集合,个人感觉是对数据库函数的一些实现.功能非常强大,日常开发非常实用,强烈推荐

你可能感兴趣的:(#,源码,java,后端)