Java 高阶函数

\一个高阶函数是指 一个函数使用函数作为参数或者执行完返回函数。在高阶函数教程中我将列举几个 Java 高阶函数的例子。

集合排序

高阶函数的第一个例子是使用 Comparator 作为参数的 Collections.sort() 方法,例子如下:

List<String> list = new ArrayList<>();
list.add("One");
list.add("Abc");
list.add("BCD");

Collections.sort(list, (String a, String b) -> {
    return a.compareTo(b);
});

System.out.println(list);  

Collections.sort() 方法有两个参数,第一个参数是一个 list,第二个参数是一个 lambda (函数),就是 这个 lambda 参数使得 Collections.sort() 成为一个高阶函数。

倒序排序

下面是另一个高阶函数的例子,这次这个函数是返回另外一个函数作为结果:

Comparator<String> comparator = (String a, String b) -> {
    return a.compareTo(b);
};

Comparator<String> comparatorReversed = comparator.reversed();

Collections.sort(list, comparatorReversed);

System.out.println(list);

这个例子首先创建了一个实现 Comparator 接口的 lambda 表达式。

其次,这个例子调用了 reversed() 方法返回一个新的 Comparator lambda,它可以反转第一个 Comparator 接口实现产生的结果。这里的 “反转” 是指它简单的返回 -1 * comparator.compare(a,b)
因为 reversed() 返回一个 lambda (函数),所以它可以被认为是一个 高阶函数。

第三,这个例子使用了 Collections.sort() 方法对一个字符串 list 进行排序。
议自:https://jenkov.com/tutorials/java-functional-programming/higher-order-functions.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值