面向对象中一等公民是对象,干什么事情之前都需要先有对象。
函数式编程思想的一等公民是函数,函数就是方法,最重要的就是方法的(形参列表)和方法体。
注意:
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 很早就支持了函数式编程。