zoukankan      html  css  js  c++  java
  • Java8新特性学习,lambda表达式与stream

    Java8新特性学习

    Lambda表达式

    写法(参数列表)->{实现} 如果实现一行本身是函数主体,可以省略括号

    函数式接口

    • 一个接口中定义了唯一一个抽象方法
    • 通过@FunctionalInterface 进行注解
    • 改进了匿名内部类

    例如

            new Thread(new Runnable(){
    
                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    System.out.println("匿名");
                }
                
            }).start();
    

    可以写为

            new Thread(() -> {
                System.out.println("Lambda");
            }).start();
    

    Stream流

    生成方式

    • Collection通过.stream生成
    • Map体系的集合间接生成。比如map.keySet()得到键的集合再生成。
    • 数组通过Stream的静态方法。

    String[] st = {"woc","nm"}
    Stream<String > stream = Stream.of(st);
    也可以直接传递可变参数例如
    Stream.of(1,2,3,4,4)

    常见的中间操作方法

    • filter(Predicate)

    Predicate boolean test(T t);

    • limit() 截取指定参数个数的数据。
    • .skip() 跳过指定参数
    • .distinct() 返回不重复元素
    • 静态方法Stream.contact(s1,s2)合并流
    • sorted([比较器])
    • 收集方法

    liststream.collect(Collectors.toList())将流的数据收集到List
    Collectors.groupingBy(分组,[操作])
    例如获得一个Map
    Map<String,Long> = stringList.stream().collect(Collectors(groupingBy(x->x,Collectors.countint())))

    Sink接口

  • 相关阅读:
    vim常用命令
    MYSQL用户管理
    RPM 命令
    Windows下使用xShell向远程Linux上传文件
    Linux PHP 安装过程出现的错误
    完整的 http 错误代码含义解释
    Linux gzip压缩输出
    高性能Mysql主从架构的复制原理及配置详解
    Mybatis多个参数传值方法
    jsp 九大内置对象和其作用详解
  • 原文地址:https://www.cnblogs.com/lizinuo/p/15375333.html
Copyright © 2011-2022 走看看