美文网首页
Java中的Lambda函数

Java中的Lambda函数

作者: 刘昱涵 | 来源:发表于2019-03-11 01:08 被阅读0次

lambda表达式的一些简单例子

x -> 3 * x 
//接收一个数字类型的参数,返回其3倍的值
(x, y) -> x – y  
//接收2个数字参数,并返回他们的差值
(String s) -> System.out.print(s)
//接受一个 string 对象,并在控制台打印,不返回任何值

Lambda在语法上通常包含了一个参数列表 (argument list), 一个箭头符号 -> 和函数体 (body) 。函数体可以是一个表达式也可以是一个声明语句。在表达式中, 函数体被计算并且返回。在函数体中的计算类似于在方法中,return关键字会把控制权交给匿名函数的调用者;break和continue只能使用在循环(loop)中;如果函数体需要计算出一个结果,函数内每一条逻辑路径必须提供一个返回值或者抛出异常。

在实际运用中使用lambda表达式
假设有一个玩家List ,程序员可以使用 for 语句来遍历

String[] atp = {"Mike", "Bob",  "lily",  "David", "Andy"};  
List<String> players =  Arrays.asList(atp);  
  
// 以前的循环方式  
for (String player : players) {  
     System.out.print(player + "; ");  
}  
  
// 使用 lambda 表达式以及函数操作
players.forEach((player) -> System.out.print(player + "; "));  
   
// 在 Java 8 中使用双冒号操作符
players.forEach(System.out::println);

使用Lambdas排序集合

String[] players = {"Mike", "Bob",  "lily",  "David", "Andy"};
   
//使用匿名内部类根据 name 排序 players
Arrays.sort(players, new Comparator<String>() {  
    @Override  
    public int compare(String s1, String s2) {  
        return (s1.compareTo(s2));  
    }  
});

//使用 lambda expression 排序 players
Comparator<String> sortByName = (String s1, String s2) -> (s1.compareTo(s2));  
Arrays.sort(players, sortByName);

//或者
Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2)));

相关文章

网友评论

      本文标题:Java中的Lambda函数

      本文链接:https://www.haomeiwen.com/subject/tjzkpqtx.html