将List集合存入流中
- List<String> list = new ArrayList<>();
- list.add("张一");
- list.add("张二");
- list.add("张三");
- list.add("李四");
- list.add("赵五");
- list.add("张六");
- list.add("王八");
- Stream<String> stream = list.stream();
Stream<String> stream = Stream.of("张一", "张二");
- public static void main(String[] args) {
- List
list = new ArrayList<>(); - list.add("张一");
- list.add("张二");
- list.add("张三");
- list.add("李四");
- list.add("赵五");
- list.add("张六");
- Stream
stream = list.stream(); - stream.filter((String name)->{ return name.startsWith("张");});
- }
这里将名字做了判断,String name开头为“张”的参数,将会返回回去。
- public static void main(String[] args) {
- List
list = new ArrayList<>(); - list.add("张一");
- list.add("张二");
- list.add("张三");
- list.add("李四");
- list.add("赵五");
- list.add("张六");
- list.stream().forEach((String name)->{System.out.println("流中的元素" + name);});
- }
forEach中的(String name)写什么都可以,主要是要和上面的list中类型一致,将流中的值赋值在String类型的name上,然后输出
实战:将以下两个list的for循环通过流优化
-
- /**
- * 获取所有的区域和下级经纬度
- *
- * @return
- */
- @Override
- public List
findAllRegionInfo() { - List
regionInfoList = this.mapper.findList(); - List
listByRegionInfoList = trajectoryService.findListByRegionInfoList(regionInfoList); - for (RegionInfo regionInfo : regionInfoList) {
- List
trajectories = new ArrayList<>(); - for (Trajectory trajectory : listByRegionInfoList) {
- if (trajectory.getFenceId().equals(regionInfo.getId())) {
- trajectories.add(trajectory);
- }
- regionInfo.setTrajectoryList(trajectories);
- }
- }
- return regionInfoList;
- }