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接口

  • 相关阅读:
    C语言面试题——寻找错误
    C语言的声明解释的在线工具——cdecl
    C语言面试题——指针运算
    const 指针与指向const的指针
    C语言复杂声明解释
    poj1248
    poj1750
    poj1484
    poj1853
    poj1575
  • 原文地址:https://www.cnblogs.com/lizinuo/p/15375333.html
Copyright © 2011-2022 走看看