当前位置: 首页 > article >正文

Java8Stream快速使用

将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.of 将流中添加参数
Stream<String> stream = Stream.of("张一", "张二");
stream.count(); 统计数量

stream.filter();过滤将流中的参数按条件返回
 public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("张一");
        list.add("张二");
        list.add("张三");
        list.add("李四");
        list.add("赵五");
        list.add("张六");
        Stream<String> stream = list.stream();
        stream.filter((String name)->{ return name.startsWith("张");});
    }

这里将名字做了判断,String name开头为“张”的参数,将会返回回去。

stream().forEach();将流中参数遍历
    public static void main(String[] args) {
        List<String> 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上,然后输出

stream().map() 将list取其中的值赋值给另一个list
List<BuildProjectInfo> list = projectInfo.stream().map(result -> new BuildProjectInfo(result.getProjectId())).collect(Collectors.toList());

 

 实战:将以下两个list的for循环通过流优化


    /**
     * 获取所有的区域和下级经纬度
     *
     * @return
     */
    @Override
    public List<RegionInfo> findAllRegionInfo() {
        List<RegionInfo> regionInfoList = this.mapper.findList();
        List<Trajectory> listByRegionInfoList = trajectoryService.findListByRegionInfoList(regionInfoList);
        for (RegionInfo regionInfo : regionInfoList) {
            List<Trajectory> trajectories = new ArrayList<>();
            for (Trajectory trajectory : listByRegionInfoList) {
                if (trajectory.getFenceId().equals(regionInfo.getId())) {
                    trajectories.add(trajectory);
                }
                regionInfo.setTrajectoryList(trajectories);
            }
        }
        return regionInfoList;
    }


http://www.kler.cn/a/137457.html

相关文章:

  • IOS输入框聚焦会把内容区域顶起
  • 海外IP代理科普——API代理
  • matlab求矩阵的伪逆或者负二分之一次方
  • Mybatis系列之 parameterMap 弃用了
  • 请求的接口响应状态为已取消的原因
  • Linux防火墙常用操作及端口开放
  • 基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示两行常规字符应用
  • 【python】Python生成GIF动图,多张图片转动态图,pillow
  • 接口自动化测试:pytest基础讲解
  • Java(四)(多态,final,常量,抽象类,接口)
  • 9 HDFS架构剖析
  • gogs运行报“gogs“: cannot run executable found relative to current directory
  • 用于神经网络的FLOP和Params计算工具
  • 【STM32】TF卡FTA32文件系统
  • metersphere 创建场景, 自动动态变换参数值,实现接口自动化测试。
  • C语言第二十弹--求最大公因数
  • conda创建pytorch环境报错
  • 第1关:图的邻接矩阵存储及求邻接点操作
  • Ant Design for Figma设计系统组件库 支持变量 非社区版
  • 【单词】【2019】