java8新特性-lambda表达式简单使用代码:
package com.example.demo.javaEight;
import java.util.Arrays;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
/**
* @Author wx
* @Description java8新特性-lambda表达式使用
* @Date 9:43 2019/9/24
* @Param
* @return
**/
public class NewCharacter {
public static void main(String[] args){
Arrays.asList("a","c").sort((a,c) -> a.compareTo(c));
// ---------------实例方法引用ForEach-----------------------------------
Arrays.asList("a","b","c").forEach(e -> System.out.println("forEach第一种:"+e));
Arrays.asList("forEach第二种:a","forEach第二种:b","forEach第二种:c").forEach(System.out::println);
// ---------------构造方法引用-----------------------------------
System.out.println("构造方法引用:"+getString(String:: new));
// ---------------用Lambda实现多线程-----------------------------
new Thread(()->System.out.println("one Hello World!")).start();
new Thread(()->{
for(int i=1;i<10;i++){
System.out.println(i+" Hello World !");
}
}).start();
// ---------------函数式接口-----------------------------
/**
* public interface FxInterface {
*
* public Integer test(int a,int b);
*
* }
**/
FxInterface f1=(a,b)->{
return (a+b);
};
System.out.println("This first way :"+f1.test(1,5));
FxInterface f2=(a,b)->(a*b);
System.out.println("This second way :"+f2.test(7,8));
// ---------------公共定义的函数式接口-----------------------------
System.out.println("公共定义的函数式->功能式接口:"+testFun("testZero",(e)->e.length()));
testCon("testOne",(e)->System.out.println("公共定义的函数式->消费型接口:"+e));
System.out.println("公共定义的函数式->供给型接口:"+testSup(()->"testTwo"));
System.out.println("公共定义的函数式->断言型接口:"+testPre("testThree",(e)->e.length()<0));
}
//公共定义的函数式->功能式接口
public static int testFun(String str, Function<String,Integer> function) {
return function.apply(str);
}
//公共定义的函数式->消费型接口
public static void testCon(String str, Consumer<String> con) {
con.accept(str);
}
//公共定义的函数式->供给型接口
public static String testSup(Supplier<String> sup) {
return sup.get();
}
//公共定义的函数式->断言型接口
public static boolean testPre(String str, Predicate<String> pre) {
return pre.test(str);
}
//构造方法引用
public static Boolean getString(Supplier<String> su) {
String s = su.get();
return s==null;
}
}