zoukankan      html  css  js  c++  java
  • lambda

    package com.lkw.lambda;

    import java.util.Comparator;

    public class lambdabasic {
    //Lambda 必须是接口函数才行--jdk1.8
    //所谓的java8四大核心函数接口就是我们下面写的多种
    //Consumer<T> void method(T t); 消费接口
    //Supplier<T> T method(); 供给接口
    //Function<T,R> R method(T t); 函数接口
    //Predicate<T> boolean method(T t) 断言接口
    //正因为接口函数,我们都以匿名来写,所以匿名的变量必须被使用

    public static void main(String[] args) {

    /*//语法格式一:无参数,无返回值
    //()->syso("a");
    Runnable r1= new Runnable() {
    @Override
    public void run() {
    // TODO Auto-generated method stub
    System.out.println("hello lkw");
    }
    };
    r1.run();
    //Lambda表达式
    Runnable r2 = ()->System.out.println("hello lkw");*/


    /*//语法格式二:有一个参数,无返回值(只有一个参数可以省略括号)
    //(x)->syso(x) ------ x->syso(x)
    //Consumer<T> 消费型接口
    Consumer<String> con =new Consumer<String>(){
    @Override
    public void accept(String x) {
    System.out.println(x);
    }
    };
    //Lambda 表达式
    Consumer<String> con1 = (x1) -> System.out.println(x1);
    con1.accept("Hello Lambda!!");
    //Lambda 一个参数可以省略括号
    Consumer<String> con2 = x2 -> System.out.println(x2);
    con2.accept("hello lambda");*/


    /*//Exception in thread "main" java.lang.StackOverflowError
    //原因执行main,实力化Comparator类,c调用方法这里是递归所以栈溢出
    //语法格式三:有两个以上的参数,有返回值,Lambda体里有多条语句需要{}
    Comparator<Integer> c = new Comparator<Integer>(){
    @Override
    public int compare(Integer o1, Integer o2) {
    // TODO Auto-generated method stub
    System.out.println("匿名内部类输出");
    return compare(o1, o2);
    }
    };
    System.out.println(c.compare(23, 55));
    //Lambda
    //为啥要加Integer,因为Integer是静态方法,如果这里不加Integer,怎在外面要有static compare方法
    Comparator<Integer> c1 = (o1,o2) -> {System.out.println("Lambda输出多语句要加{}");
    return Integer.compare(o1,o2);
    };*/




    /*
    //语法格式四:若Lambda体中只有一条语句,return和{}都可以省略
    Comparator<Integer> c1 = new Comparator<Integer>() {
    @Override
    public int compare(Integer o1, Integer o2) {
    // TODO Auto-generated method stub
    return Integer.compare(o1, o2);
    }
    };
    System.out.println(c1.compare(29, 30));
    //Lambda
    Comparator<Integer> c2 = (o1,o2) -> Integer.compare(o1, o2);
    System.out.println(c2.compare(30, 29));*/




    /*
    //语法格式五:Lambda表达式参数可以不写,因为JVM编译时会通过上下文推断出数据类型
    //要写也可以,要门都写要么都不写
    Comparator<Integer> c =new Comparator<Integer>(){
    @Override
    public int compare(Integer o1, Integer o2) {
    // TODO Auto-generated method stub
    return Integer.compare(o1, o2);
    }
    };
    System.out.println(c.compare(30, 30));
    //Lambda写出数据类型
    Comparator<Integer> c1 = (Integer x,Integer y) -> Integer.compare(x, y);
    System.out.println(c1.compare(20, 20));
    //Lambda不写出数据类型自行推测
    Comparator<Integer> c2 = (x,y) -> Integer.compare(x, y);
    System.out.println(c2.compare(30, 1));
    */

    }
    }

  • 相关阅读:
    MVVM架构~knockoutjs系列之表单添加(验证)与列表操作源码开放
    MVVM架构~knockoutjs系列之验证成功提示显示
    MVVM架构~knockoutjs系列之正则表达式使规则更灵活
    郁闷~win7无法进行局域网访问解决
    不合规范的html段落php处理细则
    备份一个通过拷贝来创建虚拟机镜像的脚本
    [置顶] ffmpg简介以及用它实现音频视频合并(java)
    [Java] HttpClient有个古怪的stalecheck选项
    POJ 1260 Pearls
    “AIR SDK 0.0: AIR SDK location “...devsdksAIRSDKWin” does not exist.”问题解决~
  • 原文地址:https://www.cnblogs.com/lkwcrystal/p/12367193.html
Copyright © 2011-2022 走看看