美文网首页Java 8
Java 函数式编程 之Lambada 表达式

Java 函数式编程 之Lambada 表达式

作者: e86dab508bc1 | 来源:发表于2019-04-07 23:17 被阅读0次

java8 中引入了函数式编程,带来了新的编程思维的转变,命令式编程得到了补充,相比较于市面上众多的函数式编程语言来说,java 在原有的编程模式下面,为其注入了新的血液,使得语言拓展能力大大的提高,下面就简单写个例子来看看函数式编程与命令式编程之间的区别。

例子 : 找出给定的list中的偶数

  List<Integer> integers = Lists.newArrayList(1,2,3,4,5,6);

    //命令式
    for(Integer integer : integers){
        if (integer % 2 ==0){
            System.out.println(integer);
        }
    }
    
    //Stream 函数式
    integers.stream().filter(x -> x % 2 ==0).forEach(System.out::println);

下面介绍几个基本的函数接口,在这之前,先看下函数接口的定义。

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface FunctionalInterface {}

下面是几个基本的函数式接口,其他的很多复杂操作都是通过这些进行拓展的。

(1)数据的提供者, 只出不进。

    Supplier<Integer> supplier = () -> ThreadLocalRandom.current().nextInt();
    System.out.println(supplier.get());

(2)数据的消费者, 只进不出

    Consumer<Integer> consumer = (Integer x) -> {
        System.out.println(x);
    };
    consumer.accept(5);

(3)数据处理并返回,有进有出。

    Function<Integer, Integer> function = integer -> {
        return 100;
    };

    System.out.println(function.apply(99));

(4)判断,返回 true或者false。

    Predicate<Integer> integerPredicate = x -> {
        if (x > 23) {
            return false;
        } else {
            return true;
        }
    };

现在在集合类中也是很多地方使用到了函数式接口,java 使用了default关键字,使得原有的实现类可以不需要实现新的添加的方法,还有就是java添加的 invokedynamic 指令,使得java具有了动态语言的能力。

相关文章

  • lambada表达式介绍

    前言 在其他语言中,函数式编程是很常见的,java8中为了支持函数式编程,新增了lambada表达式。lambad...

  • Java 函数式编程 之Lambada 表达式

    java8 中引入了函数式编程,带来了新的编程思维的转变,命令式编程得到了补充,相比较于市面上众多的函数式编程语言...

  • lambda表达式

    概要: 函数式编程特性 lambda表达式语法及应用场景 Java 8自带函数式接口详解 一、函数式编程特性 1....

  • java之Lambda函数式编程最佳应用举例,链式语法「真干货来

    --java之Lambda函数式编程---- 背景 java 8 Lambda函数式编程,像阿里、腾讯这样的大互联...

  • Java8 - Lambda

    函数式编程在并发和事件驱动编程中优势明显。所以Java8引入了Lambda表达式的概念。 面向对象编程与函数式...

  • 【阅读】Java8函数式编程--编程范式的趋势

    让我们来说说函数式编程--Lambda表达式上周开始,看了这本书--Java 8 函数式编程,以下是我的读书摘抄。...

  • 函数式编程接口

    函数式编程是JAVA 1.8引入的编程思想,即一个接口只有一个抽象方法,函数式编程也叫基于Lambda表达式编程。...

  • Lambda表达式

    Java为什么需要Lambda表达式 Lambda表达式为Java添加了缺少的函数式编程的特点,将函数作为一个参数...

  • Java 8 Stream详解

    概述 继Java 8系列之Lambda表达式之后,我们来了解Stream。Stream 是用函数式编程方式在集合类...

  • Java 8 深入剖析 | Lambda 表达式

    1. Lambda 表达式介绍 Lambda 表达式为 Java 添加了缺失的 函数式编程特性,使我们能将函数当作...

网友评论

    本文标题:Java 函数式编程 之Lambada 表达式

    本文链接:https://www.haomeiwen.com/subject/atojiqtx.html