函数式编程是把函数作为基本运算单元,函数可以作为变量可以接受函数。我们经常把函数式的编码风格成为Lambda表达式
例
public class Main {
public static void main(String[] args) {
String[] array = new String[] { "Apple", "Orange", "Banana", "Lemon" };
Arrays.sort(array, (s1, s2) -> {
return s1.compareTo(s2);
});
System.out.println(String.join(", ", array));
}
}
实际上,除了Lambda表达式,我们还可以直接传入方法引用。例如:
public class Main {
public static void main(String[] args) {
String[] array = new String[] { "Apple", "Orange", "Banana", "Lemon" };
Arrays.sort(array, Main::cmp);
System.out.println(String.join(", ", array));
}
static int cmp(String s1, String s2) {
return s1.compareTo(s2);
}
}
使用Stream
Stream API提供了一套新的流式处理的抽象序列;
Stream API支持函数式编程和链式操作;
Stream可以表示无限序列,并且大多数情况下是惰性求值的。