java lambda函数_Java中的Lambda函数

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 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() {

@Override

public int compare(String s1, String s2) {

return (s1.compareTo(s2));

}

});

//使用 lambda expression 排序 players

Comparator sortByName = (String s1, String s2) -> (s1.compareTo(s2));

Arrays.sort(players, sortByName);

//或者

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值