面向对象中一等公民是对象,干什么事情之前都需要先有对象。
函数式编程思想的一等公民是函数,函数就是方法,最重要的就是方法的(形参列表)和方法体。
注意:
Java 是面向对象的编程语言,只是引入了函数式编程思想而已,Java 的基石还是面向对象,函数式编程只是 “语法糖”。
函数式编程思想就是将函数当成数据、参数等来进行传递。
示例:对数组中的字符串进行排序,要求排序过程中忽略字母的大小写
package com.github.
function;
import org.junit.jupiter.api.Test;
import java.util.Arrays;
import java.util.Comparator;
/** * @author maxiaoke.com * @version 1.0 * @since 2023-02-03 16:28 */
public class FunctionTest {
/** * 使用匿名内部类的形式来实现 */
@Test public void test() {
String[] arr = {
"hello",
"world",
"Abc",
"java"
};
Arrays.sort(arr, new Comparator < >() {@Override public int compare(String o1, String o2) {
return o1.compareToIgnoreCase(o2);
}
});
System.out.println(Arrays.toString(arr)); // [Abc, hello, java, world] } /** * 使用函数式编程的方式来实现 */ @Test public void test2() { String[] arr = {"hello", "world", "Abc", "java"}; Arrays.sort(arr, (o1, o2) -> o1.compareToIgnoreCase(o2)); System.out.println(Arrays.toString(arr)); // [Abc, hello, java, world] }}如果我们学过 JavaScript 语言的话,就很好理解了,因为在 JavaScript 中函数是一等公民,并且 JavaScript 很早就支持了函数式编程。