公用list stream表示使用java8流操作
- filter 过滤筛选 例如下: 从list中筛出moduleTitle为ABC的数据(忽略大小写),并将结果收集起来放到一个新的list中。
e.g
List<ModuleConfig> list = moduleConfigService.getAll(); --> 查配置表获取所有配置信息
List<ModuleConfig> moduleConfigList = list
.stream()
.filter(moduleConfig ->
moduleConfig.getModuleTitle().equalsIgnoreCase("ABC")).collect(Collectors.toList()); --> 从所有配置表中获取moduleTitle为ABC的数据
格式: 列表.stream().filter(param -> xxx)过滤筛选
分析:
- “param” 是自定义的参数(适用范围在当前filter内) 即: moduleConfig
- “->” 是固定写法 在自定义参数后加, 其后加要过滤内容 即: moduleConfig.getModuleTitle().equalsIgnoreCase(“abc”)
- “xxx” 是过滤内 即: moduleConfig.getModuleTitle().equalsIgnoreCase(“abc”)
- “collect(Collectors.toList())” 收集器收集数据并转为List
-
foreach 循环
e.g 循环配置信息列表,打印列表中对象的信息
List<ModuleConfig> list = moduleConfigService.getAll(); --> 查配置表获取所有配置信息
list.foreach(x -> {
System.out.println(x); --> 循环打印信息
});
格式: 列表.foreach(param -> {}) 循环列表
分析:
- “param” 是自定义的参数(适用范围在当前foreach内) 即: x
- “->” 是固定写法 在自定义参数后加, 其后可加{}存放方法
- “{}” 大括号中是方法体
list.stream().foreach() 和 list.foreach() 是一个意思 这里stream()可写可不写。
即上述案例的另一种写法可以写为
List<ModuleConfig> list = moduleConfigService.getAll();
list.stream().foreach(x -> {
System.out.println(x);
});
```