Java函数式编程Stream.collect
steam()
:把一个源数据,可以是集合,数组,I/O channel, 产生器generator 等,转化成流;Stream 流提供了一个 collect() 方法,可以收集流中的数据到【集合】或者【数组】中去。。Collectors()
: 类实现了很多归约操作,例如将流转换成集合和聚合元素。通过stream().collect()方法可简单获得我们所需要的数据结构。
//1.收集数据到list集合中
stream.collect(Collectors.toList())
//2.收集数据到set集合中
stream.collect(Collectors.toSet())
//3.收集数据到指定的集合中
stream.collect(Collectors.toCollection(Supplier collectionFactory))
测试集合类
1、将集合里的某个参数拿出来重新生成一个集合,如下将prodList
里的name
参数重新生成一个集合
2、对集合里的数据进行处理,如下将集合里的青岛啤酒名称改为哈尔滨啤酒
3、将集合需要的参数数据转化成Map,如下将id与name转化成Map
4、将集合通过某个参数进行分组,对组织人员进行部门分组的时候有奇效,如下将对category分组
5、将集合通过某个参数进行拼接,如下将name进行拼接
6、统计集合的总数
7、将集合通过某个参数进行拼接(忽略空值)StringUtils.isNotEmpty(s)).collect(Collectors.joining("|")
8、过滤对象中的空数据字段.filter(s -> s.getName() != null && StringUtils.isNotBlank(s.getName()))
List collect = sysResourceBeans.stream().filter(s -> s.getName() != null && StringUtils.isNotBlank(s.getName())).map(BeanMap::create).collect(Collectors.toList());
Leave A Comment