java8 .stream()
stream()把一个源数据,可以是集合,数组,I/O channel, 产生器generator 等,转化成流
1.filter()
filter()方法用于通过设置的条件过滤出元素
filter()方法返回菜肴流,而collect()方法将流转换为列表。 “收集”操作称为终端操作。
现在让我们说,我们要获取前三个包含300多个卡路里的菜肴。 流支持limit(n)方法,该方法返回另一个不超过给定大小的流。 请求的大小作为参数传递给limit。
List<Dish> menu = ....
List<Dish> threeHighCalaricDish = menu.stream()
.filter(d -> d.getCalaries() > 300)
.limit(3)
.collect(Collectors.toList());
list.stream().filter(c -> c.getName().equals("xxx"));
list.stream().filter(c -> c.getName().equals("xxx")).collect(Collectors.toList());
2.collect()
Collectors类实现了很多归约操作,例如将流转换成集合和聚合元素。Collectors 可用于返回列表或字符串,collect()内可以用collectors进行转换:
2.1 将集合通过某个参数进行拼接,如下将name进行拼接
.collect(Collectors.toList());//列表
.collect(Collectors.joining(", "));//字符串
2.2 将集合需要的参数数据转化成Map,如下将id与name转化成Map
例如:
// 转为Map
Map<Long,