Java高阶函数

时间:2020-01-09 10:35:59  来源:igfitidea点击:

高阶函数是将函数(方法)作为参数,或者在执行后返回函数的函数。在这个高阶教程中,我将展示一些Java中高阶函数的示例。

排序集合

高阶函数的第一个示例是Collections.sort()方法,该方法将Comparator作为参数。这是一个例子:

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);

Collection.sort()有两个参数。第一个参数是" List",第二个参数是lambda(函数)。 lambda参数是使Collections.sort()成为高阶函数的原因。

反向排序

这是高阶函数的另一个示例。这次是一个函数,它返回另一个函数作为结果。这是Java高阶函数示例:

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

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

Collections.sort(list, comparatorReversed);

System.out.println(list);

这个示例首先创建一个Java lambda表达式,该表达式实现了Comparator接口。

其次,该示例在"比较器" lambda上调用" reversed()"方法。 reversed()方法返回一个新的Comparatorlambda,它反过来由第一个Comparator实现返回的结果。 "反向"是指它只返回-1 \ *比较器.compare(a,b)。

因为" reversed()"方法返回一个lambda(函数),所以" reversed()"方法被认为是高阶函数。

第三,该示例使用Collections.sort()方法对字符串的List进行排序。