
lambda
lglhope
这个作者很懒,什么都没留下…
展开
-
Java 8 lambda表达式中的异常处理
1 概述在Java 8 中,当写lambda表达式并处理异常时代码变得冗余不堪,本文主要介绍lambda表达式中一些异常处理方式。2 处理 Unchecked 异常(不处理编译通过)下面的代码,当i为0时会引发ArithmeticException异常。List<Integer> integers = Arrays.asList(3, 9, 7, 6, 10, 20)...转载 2019-12-17 14:17:10 · 874 阅读 · 0 评论 -
java8 Optional静态类简介,以及用法
在java8中,很多的stream的终端操作,都返回了一个Optional<T>对象,这个对象,是用来解决空指针的问题,而产生的一个类;我们先看下,这个类的一些定义import java.util.NoSuchElementException;import java.util.Objects;import java.util.function.Consumer;import...转载 2019-12-20 09:52:13 · 458 阅读 · 0 评论 -
java8 stream接口 终端操作 collect操作
在之前,我们有说到,java8中的stream操作,分为中间操作和终端操作,在终端操作中,前面也看到了归约的方式,这篇主要是也说的归约操作的方式collect,收集器操作,收集器操作,可以当做是一种更高级的归约操作;先看下stream中的collect操作 <R> R collect(Supplier<R> supplier,BiConsumer<...转载 2019-12-20 09:52:04 · 592 阅读 · 0 评论 -
java8 srteam接口终端操作reduce操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的reduce操作,reduce是一种归约操作,将流归约成一个值的操作叫做归约操作,用函数式编程语言的术语来说,这种称为折叠(fold);我们先看下函数的定义T reduce(T identity, BinaryOperator<T> accumulato...转载 2019-12-20 09:51:56 · 452 阅读 · 0 评论 -
java8 stream接口终端操作 count,anyMatch,allMatch,noneMatch
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的count,anyMatch,allMatch,noneMatch操作,我们先看下函数的定义long count(); boolean anyMatch(Predicate<? super T> predicate); bool...转载 2019-12-19 15:09:27 · 325 阅读 · 0 评论 -
java8 stream接口 终端操作 toArray操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的toArray操作,我们先看下函数的定义以及实现Object[] toArray(); <A> A[] toArray(IntFunction<A[]> generator); @Override @SuppressWarn...转载 2019-12-19 15:07:54 · 3118 阅读 · 0 评论 -
java8 stream接口 终端操作 forEachOrdered和forEach
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》这篇开始介绍java8的终端操作,以及forEachOrdered和forEach;先看下这个函数的定义void forEach(Consumer<? super T> action); void forEachOrdered(Consumer<? super T> a...转载 2019-12-19 15:05:42 · 680 阅读 · 0 评论 -
JAVA8 stream接口 distinct,sorted,peek,limit,skip
下面,我们来看其他的剩余的一些中间操作,各自的作用,我也通过注释,做了解析,方法定义如下;//去重复 Stream<T> distinct(); //排序 Stream<T> sorted(); //根据属性排序 Stream<T> sorted(Comparator<? super T> compara...转载 2019-12-19 15:01:06 · 584 阅读 · 0 评论 -
JAVA8 Stream接口,map操作,filter操作,flatMap操作
这篇,我们来看Stream的一些中间操作,关于中间操作的一些介绍,可以看《JAVA8 stream接口 中间操作和终端操作》1,filter操作,我们先看方法的定义Stream<T> filter(Predicate<? super T> predicate);这个方法,传入一个Predicate的函数接口,关于Predicate函数接口定义,可以查看《JAV...转载 2019-12-19 14:55:21 · 1058 阅读 · 0 评论 -
JAVA8 stream接口 中间操作和终端操作
上一篇我们介绍了stream的集中创建方式,《 java8 Stream-创建流的几种方式》,从这篇开始,我们开始介绍stream接口里的一系列方法的作用,以及使用,每个方法都会有相对应的案例的解析,让大家可以更加直观的方式,了解方法的使用,使用这些方法之前,我们先对方法的类型,进行归类,然后分类型进行讲解;下面,我们再看下接口定义public interface Stream<T&g...转载 2019-12-19 14:52:16 · 610 阅读 · 0 评论 -
java8 Stream-创建流的几种方式
前面(《java8 Stream接口简介》),我们已经对stream这个接口,做了简单的介绍,下面,我们用几个案例,来看看流的几种创建方式 String[] dd = { "a", "b", "c" }; Arrays.stream(dd).forEach(System.out::print);// abc System.out.println(...转载 2019-12-19 11:34:26 · 778 阅读 · 0 评论 -
java8 Stream接口简介
首先我们先来认识下一个的接口的意思,流是什么?流是java API中的新的成员,它可以让你用声明式的方式处理集合,简单点说,可以看成遍历数据的一个高级点的迭代器,也可以看做一个工厂,数据处理的工厂,当然,流还天然的支持并行操作;也就不用去写复杂的多线程的代码,下面我先来看下stream的接口定义public interface Stream<T> extends BaseSt...转载 2019-12-19 11:29:58 · 396 阅读 · 0 评论 -
JAVA8 BiConsumer 接口
这个接口跟《JAVA8 Consumer接口》很像,表达的想法也是一致的,都是消费的意思,我们先看下接口定义@FunctionalInterfacepublic interface BiConsumer<T, U> { void accept(T t, U u); /**本接口中的accept先执行,传入的BiConsumer 接口类型的参数,...转载 2019-12-18 11:16:26 · 454 阅读 · 0 评论 -
JAVA8 UnaryOperator接口
我们先看下这个接口的定义@FunctionalInterfacepublic interface UnaryOperator<T> extends Function<T, T> { /** * Returns a unary operator that always returns its input argument. * ...转载 2019-12-18 11:14:40 · 330 阅读 · 0 评论 -
JAVA8 Supplier接口
看下接口定义@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a result. * * @return a result */ T get();}supplier英 [səˈplaɪə(r)] 美 [səˈplaɪər] n....转载 2019-12-18 11:12:08 · 376 阅读 · 0 评论 -
JAVA8 Consumer接口
Consumer的语义是消费的意思,了解一些消息队列的同学,肯定对这个单词,有一定的理解,我们先看接口的定义@FunctionalInterfacepublic interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consumer<? su...转载 2019-12-18 11:08:40 · 447 阅读 · 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) ...转载 2019-12-18 11:00:46 · 505 阅读 · 0 评论 -
java8 函数式接口简介
在java8中,lambda表达式所用的接口,必须是函数式接口;函数式接口的定义:接口中只有一个抽象方法的接口,称为函数式接口;可以使用@FunctionalInterface注解修饰,对该接口做检查;如果接口里,有多个抽象类,使用该注解,会有语法错误。在java8中的函数式接口,有很多,比说,无参无返回值的(Runnable接口),有一个参数,无返回值的(Consumer),有多个参...转载 2019-12-18 10:56:31 · 620 阅读 · 0 评论 -
java8 Lambda表达式简介
先阐述一下JSR(Java Specification Requests)规范,即Java语言的规范提案。是向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,可以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。可以理解为JSR是Java开发者以及授权者指定的标准,而Java开发者以及授...原创 2019-12-18 10:50:53 · 5136 阅读 · 2 评论 -
java8 lambda表达式,方法的引用以及构造器的引用
lambda表达式最主要的点:函数式接口的泛型、输入参数、返回值,此后使用lambda都要想到这三个点方法的引用的语法,主要有三类1.指向静态方法的方法引用,例如Integer的parseInt方法 ,可以写成Integer::parseInt类::静态方法名2.指向任意类型实例方法的方法引用,例如String的length方法,写成String::length;...转载 2019-12-18 10:45:50 · 691 阅读 · 0 评论