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));
    */

    }
    }

  • 相关阅读:
    SQL行转列问题
    pgAdmin III 单表数据的导出导入
    window 服务的安装和卸载
    将Excel表格转成DataTable
    “Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应”解决方法
    form-data提交
    由于本公司项目需要,现急需拥有微软MCSE证书的人才,一经录用,待遇从优!
    Head First设计模式悟道
    entityframwork
    .net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET MVC中使用Jntemplate
  • 原文地址:https://www.cnblogs.com/lkwcrystal/p/12367193.html
Copyright © 2011-2022 走看看