java lamada

作者:原创时间:2022-04-02
文档

java lamada是什么,让我们一起了解一下?

lambda是通过表达式来代替功能接口,lambda表达式就和方法一样,提供了一个正常的参数列表和一个使用这些参数的主体,增强了集合库,在Lambda表达式中this是指外围实例,而匿名类中的this是指匿名类实例。

Lambda表达式的语法是什么?

// 1. 不需要参数,返回值为 5  
() -> 5  
  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y    
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)

我们已经知道什么是lambda表达式,那假设有一个玩家List,程序员可以使用 for 语句 ("for 循环")来遍历,在Java SE 8中是不是可以转换为另一种形式?

具体代码如下:

String[] atp = {"Rafael Nadal", "Novak Djokovic",  
       "Stanislas Wawrinka",  
       "David Ferrer","Roger Federer",  
       "Andy Murray","Tomas Berdych",  
       "Juan Martin Del Potro"};  
List players =  Arrays.asList(atp);  
  
// 以前的循环方式  
for (String player : players) {  
     System.out.print(player + "; ");  
}  
  
// 使用 lambda 表达式以及函数操作(functional operation)  
players.forEach((player) -> System.out.print(player + "; "));  
   
// 在 Java 8 中使用双冒号操作符(double colon operator)  此现象较静态引用。
players.forEach(System.out::println);

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java leveldb java linklist java linq java list.add java list.contains java locale java localtime java logging java logstash java main java malloc java mapping java math.ceil java matlab java matrix java memcpy java merge java method java mian java mina java kudu java kmeans java keystore java kafka java jxl java jvm java jtextfield java jtable java jta java jstat java jstack java jsonp java jsonfield java jquery java jps java joptionpane java jndi java jmh java jmeter java jit