天天看點

java8之Lambda

Lambda 表達式基礎文法:

java8中引入了一個新的操作符 "->"  (lambda操作符)

"->"    左側Lambda表達式參數清單

"->"    右側Lambda體,Lambda表達式所需執行的功能

文法格式一:無參,無傳回值

    () -> { }

Runnable runnable = () -> System.out.println("hello lambda test");      
      runnable.run();      

相當于

Runnable runnable = new Runnable() {
            @Override
            public void run() {
                System.out.println("hello test");
            }
        };
      
runnable.run();      

文法格式二: 一參,無傳回值  

(e) -> { }  或  e -> { }     :一參時參數括号可寫可不寫

Consumer<String> consumer = s -> System.out.println(s);
consumer.accept("Hello test");      

文法格式二: 多參,有傳回值

(a,b,...) -> { }     

:Lambda體中隻有一條語句時,{}及 return 可寫可不寫

:Lambda參數清單資料類型可以省略不寫(寫的話要所有參數全寫),JVM編譯器會根據上下文推斷出資料類型

Comparator<Integer> comparator = (x,y) -> Integer.compare(x,y);
Comparator<Integer> comparator2 = (x,y) -> {
     System.out.println("比較x,y大小");
     return Integer.compare(x,y);
};