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()
方法返回一个新的Comparator
lambda,它反过来由第一个Comparator
实现返回的结果。 "反向"是指它只返回-1 \ *比较器.compare(a,b)。
因为" reversed()"方法返回一个lambda(函数),所以" reversed()"方法被认为是高阶函数。
第三,该示例使用Collections.sort()方法对字符串的List进行排序。