![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lambda
文章平均质量分 77
蓝天白云下遛狗
这个作者很懒,什么都没留下…
展开
-
JAVA8 Lambda表达式简介
在《java8实战》这本书中,对Lambda的解释如下:可以把Lambda表达式理解为简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表,函数主体,返回类型,可能还有一个可以抛出的异常列表。简述1. Lambda表达式的类比1.lambda表达式是从匿名内部类演化过去的,是匿名内部类的简化版本public static void test01() throws IOException { // lambda表达式是从匿名内部类演化过去的,是匿名内部类的简化版本原创 2022-04-15 14:26:53 · 42 阅读 · 0 评论 -
JAVA8 Lambda表达式,方法的引用以及构造器的引用
在前面有讲述过lambda表达式中,使用的都是函数式接口;关于lambda表达式简介《java8 Lambda表达式简介》;关于函数式接口《java8 函数式接口简介》;这篇主要是讲,在lambda表达式中,使用方法的引用,来传递方法方法的行为参数化;方法的引用,在《java8实战》介绍如下:方法的引用让你可以重复使用现有的方法定义,并像lambda一样传递他们,在一些情况下,比起使用lambda表达式,它们似乎更易读,感觉也更自然;方法的引用的语法,主要有三类1.指向静态方法的方法引用,例如In原创 2022-04-15 14:34:26 · 50 阅读 · 0 评论 -
JAVA8 Function接口以及同类型的特化的接口
我们先来看下Funtion接口的定义@FunctionalInterfacepublic interface Function<T, R> { R apply(T t); default <V> Function<V, R> compose(Function<? super V, ? extends T> before) { Objects.requireNonNull(before); return (原创 2022-04-15 14:53:41 · 22 阅读 · 0 评论 -
JAVA8 Consumer接口
Consumer的语义是消费的意思,了解一些消息队列的同学,肯定对这个单词,有一定的理解,我们先看接口的定义@FunctionalInterfacepublic interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consumer<? super T> after) { Objects.requireNonNull(after);原创 2022-04-15 14:46:14 · 22 阅读 · 0 评论 -
JAVA8 Supplier接口
下看下接口定义@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a result. * * @return a result */ T get();}supplier英 [səˈplaɪə®] 美 [səˈplaɪər]n.供应商;供应国;供应者,供给者;补充者看语义,可以看到,这个接口是一个提供者的意思,只有一个get的抽象类,没有默认的方原创 2022-04-15 14:48:50 · 28 阅读 · 0 评论 -
JAVA8 BiConsumer 接口
这个接口跟《JAVA8 Consumer接口》很像,表达的想法也是一致的,都是消费的意思,我们先看下接口定义@FunctionalInterfacepublic interface BiConsumer<T, U> { void accept(T t, U u); /**本接口中的accept先执行,传入的BiConsumer 接口类型的参数,后执行accept*/ default BiConsumer<T, U> andThen(BiCons原创 2022-04-15 15:08:58 · 46 阅读 · 0 评论 -
JAVA8 Stream接口简介
首先我们先来认识下一个的接口的意思,流是什么?流是java API中的新的成员,它可以让你用声明式的方式处理集合,简单点说,可以看成遍历数据的一个高级点的迭代器,也可以看做一个工厂,数据处理的工厂,当然,流还天然的支持并行操作;也就不用去写复杂的多线程的代码,下面我先来看下stream的接口定义public interface Stream<T> extends BaseStream<T, Stream<T>> { Stream<T> filter(原创 2022-04-15 15:19:15 · 29 阅读 · 0 评论 -
JAVA8 Stream接口 终端操作 toArray操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的toArray操作,我们先看下函数的定义以及实现 Object[] toArray(); <A> A[] toArray(IntFunction<A[]> generator); @Override @SuppressWarnings("unchecked") public final <A> A[] toArray(IntFun原创 2022-04-15 16:01:10 · 568 阅读 · 0 评论 -
JAVA8 Stream接口 终端操作 min,max,findFirst,findAny操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的min,max,findFirst,findAny操作,我们先看下函数的定义 Optional<T> min(Comparator<? super T> comparator); Optional<T> max(Comparator<? super T> comparator); Optional<T> f原创 2022-04-15 17:27:59 · 454 阅读 · 0 评论 -
JAVA8 Stream接口终端操作 count,anyMatch,allMatch,noneMatch
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的count,anyMatch,allMatch,noneMatch操作,我们先看下函数的定义 long count(); boolean anyMatch(Predicate<? super T> predicate); boolean allMatch(Predicate<? super T> predicate);原创 2022-04-15 16:25:46 · 125 阅读 · 0 评论 -
JAVA8 Stream接口终端操作reduce操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的reduce操作,reduce 是一种归约操作,将流归约成一个值的操作叫做归约操作,用函数式编程语言的术语来说,这种称为折叠(fold);我们先看下函数的定义 T reduce(T identity, BinaryOperator<T> accumulator); Optional<T> reduce(BinaryOperator<T> acc原创 2022-04-15 17:45:17 · 63 阅读 · 0 评论 -
JAVA8 Stream接口 终端操作 collect操作
在之前,我们有说到,java8中的stream操作,分为中间操作和终端操作,在终端操作中,前面也看到了归约的方式,这篇主要是也说的归约操作的方式collect,收集器操作,收集器操作,可以当做是一种更高级的归约操作;先看下stream中的collect操作 <R> R collect(Supplier<R> supplier,BiConsumer<R, ? super T> accumulator,BiConsumer<R, R> combiner);原创 2022-04-15 17:49:56 · 31 阅读 · 0 评论 -
JAVA8 Optional静态类简介,以及用法
在java8中,很多的stream的终端操作,都返回了一个Optional对象,这个对象,是用来解决空指针的问题,而产生的一个类;我们先看下,这个类的一些定义import java.util.NoSuchElementException;import java.util.Objects;import java.util.function.Consumer;import java.util.function.Function;import java.util.function.Predicate;原创 2022-04-15 16:41:38 · 28 阅读 · 0 评论