Java8-Lambda-No.03

简介: import java.util.Comparator;import java.util.Objects;import java.util.UUID;import java.util.
import java.util.Comparator;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.Callable;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class Lambda3 {

    @FunctionalInterface
    interface Fun {
        void foo();
    }

    public static void main(String[] args) throws Exception {

        // Predicates

        Predicate<String> predicate = (s) -> s.length() > 0;

        predicate.test("foo");              // true
        predicate.negate().test("foo");     // false

        Predicate<Boolean> nonNull = Objects::nonNull;
        Predicate<Boolean> isNull = Objects::isNull;

        Predicate<String> isEmpty = String::isEmpty;
        Predicate<String> isNotEmpty = isEmpty.negate();


        // Functions

        Function<String, Integer> toInteger = Integer::valueOf;
        Function<String, String> backToString = toInteger.andThen(String::valueOf);

        backToString.apply("123");     // "123"


        // Suppliers

        Supplier<Person> personSupplier = Person::new;
        personSupplier.get();   // new Person


        // Consumers

        Consumer<Person> greeter = (p) -> System.out.println("Hello, " + p.firstName);
        greeter.accept(new Person("Luke", "Skywalker"));



        // Comparators

        Comparator<Person> comparator = (p1, p2) -> p1.firstName.compareTo(p2.firstName);

        Person p1 = new Person("John", "Doe");
        Person p2 = new Person("Alice", "Wonderland");

        comparator.compare(p1, p2);             // > 0
        comparator.reversed().compare(p1, p2);  // < 0


        // Runnables

        Runnable runnable = () -> System.out.println(UUID.randomUUID());
        runnable.run();


        // Callables

        Callable<UUID> callable = UUID::randomUUID;
        callable.call();
    }

}
目录
相关文章
|
22天前
|
Java API
Java Lambda
Java Lambda
16 0
|
2月前
|
Java 测试技术 程序员
滚雪球学Java(09-10):Java中的Lambda运算符,你真的掌握了吗?
【2月更文挑战第21天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!!
39 0
|
2月前
|
存储 Java 编译器
java8新特性-Lambda
java8新特性-Lambda
27 0
|
4月前
|
Java
Java中的lambda
Java中的lambda
16 0
|
10月前
|
并行计算 Java 编译器
Java·Lambda
Java·Lambda
45 0
|
12月前
|
Java 编译器
Java 8 - Lambda从兴趣盎然到索然无味
Java 8 - Lambda从兴趣盎然到索然无味
68 0
|
算法 Java
Java--Lambda(1)简介
阅读公司前辈写的代码的时候,有一些地方总不理解,后来才知道是Lambda表达式。所以学习了一下,在此记录一下。通过百度搜索得知:Lambda 表达式也叫作匿名函数,是一种是未绑定标识符的函数定义,在编程语言中,匿名函数通常被称为 Lambda 抽象。换句话说, Lambda 表达式通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用。这种匿名函数,在 JDK 8 之前是通过 Java 的匿名内部类来实现,从 Java 8 开始则引入了 Lambda 表达式——一种紧凑的、传递行为的方式。
Java--Lambda(1)简介
|
缓存 Java 编译器
|
机器学习/深度学习 自然语言处理 搜索推荐
理解和运用Java中的Lambda(上)
回想一下,JDK8是2014年发布正式版的,到现在为(2020-02-08)止已经过去了5年多。JDK8引入的两个比较强大的新特性是Lambda表达式(下文的Lambda特指JDK提供的Lambda)和Stream,这两个强大的特性让函数式编程在Java开发中发扬光大。这篇文章会从基本概念、使用方式、实现原理和实战场景等角度介绍Lambda的全貌,其中还会涉及一些函数式编程概念、JVM一些知识等等。
85 0
理解和运用Java中的Lambda(上)
|
SQL Java 数据库连接
理解和运用Java中的Lambda(下)
回想一下,JDK8是2014年发布正式版的,到现在为(2020-02-08)止已经过去了5年多。JDK8引入的两个比较强大的新特性是Lambda表达式(下文的Lambda特指JDK提供的Lambda)和Stream,这两个强大的特性让函数式编程在Java开发中发扬光大。这篇文章会从基本概念、使用方式、实现原理和实战场景等角度介绍Lambda的全貌,其中还会涉及一些函数式编程概念、JVM一些知识等等。
200 0