java:Lambda函数式编程
2023-12-18 20:03:27
    		作为一个前端同学,今天惊叹的发现,原来 java 也可以使用函数式编程,赶紧来看看怎么玩
简介
当Java 8引入Lambda表达式和函数式编程特性时,它开启了一个全新的编程范式。这些功能使得Java语言更加现代、灵活,并支持更为函数式的编程方式。在这篇博客中,我们将深入探讨Java中的Lambda表达式和函数式编程。
语法
(parameters) -> expression
parameters表示参数列表,expression表示表达式。你要是前端的话看一眼就懂了,接下来我整一些示例给大家看看
示例:简单
hello world
new Thread(() -> System.out.println("Hello, Lambda!")).start();
相加
// 自定义函数式接口
interface MyFunction {
    void apply(int x, int y);
}
// 使用Lambda表达式实现
MyFunction add = (x, y) -> System.out.println("Sum: " + (x + y));
示例:筛选年龄大于 25 的人员
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
class Scratch {
    public static void main(String[] args) {
        List<Person> people = new ArrayList<>();
        people.add(new Person("Alice", 25));
        people.add(new Person("Bob", 30));
        people.add(new Person("Charlie", 22));
        people.add(new Person("David", 35));
        // 使用 Lambda 表达式筛选年龄大于 25 的人员
        List<Person> filteredList = filterPeople(people, person -> person.getAge() > 25);
        System.out.println(filteredList);
    }
    // 使用函数式接口 Predicate 进行筛选
    private static List<Person> filterPeople(List<Person> people, Predicate<Person> predicate) {
        List<Person> filteredList = new ArrayList<>();
        for (Person person : people) {
            if (predicate.test(person)) {
                filteredList.add(person);
            }
        }
        return filteredList;
    }
}
class Person {
    private String name;
    private int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
结果
[Person{name='Bob', age=30}, Person{name='David', age=35}]
Lambda表达式与前端箭头函数的对比
// Lambda表达式
Runnable runnableLambda = () -> System.out.println("Hello, Lambda!");
// 箭头函数
const greet = () => console.log("Hello, Arrow Function!");
基本就是箭头的样式不一样
函数式编程的优势
-  代码简洁 
 Lambda表达式让代码变得更加紧凑,消除了冗长的语法,提高了代码的可读性。
-  增强可读性 
 函数式编程强调表达式的含义,Lambda表达式使得代码逻辑更为清晰,提高可读性。
-  更灵活的编程方式 
 Lambda表达式支持函数作为一等公民,使得高阶函数的编写变得更为灵活。
    			文章来源:https://blog.csdn.net/weixin_43972437/article/details/135068804
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
    	本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!