java8
葵花下的獾
每天进步一点点,菜鸟先飞
展开
-
java8 stream接口终端操作allMatch 当list为空集合的一些思考
java8 stream接口终端操作allMatch 当list为空集合的一些思考目录 java8 stream接口终端操作allMatch 当list为空集合的一些思考一、先简单查看源码,快速浏览一遍二、详细步骤三、最后的思考先看下如下代码 public static void main(String[] args) { List<String> list = new ArrayList<>(); boolean allMatch = list原创 2020-12-03 15:30:48 · 12721 阅读 · 9 评论 -
JAVA8 stream接口 中间操作和终端操作
上一篇我们介绍了stream的集中创建方式,《 java8 Stream-创建流的几种方式》,从这篇开始,我们开始介绍stream接口里的一系列方法的作用,以及使用,每个方法都会有相对应的案例的解析,让大家可以更加直观的方式,了解方法的使用,使用这些方法之前,我们先对方法的类型,进行归类,然后分类型进行讲解;下面,我们再看下接口定义public interface Stream<T&g...原创 2018-06-09 17:58:09 · 24034 阅读 · 1 评论 -
JAVA8 Stream接口,map操作,filter操作,flatMap操作
这篇,我们来看Stream的一些中间操作,关于中间操作的一些介绍,可以看《JAVA8 stream接口 中间操作和终端操作》1,filter操作,我们先看方法的定义Stream<T> filter(Predicate<? super T> predicate);这个方法,传入一个Predicate的函数接口,关于Predicate函数接口定义,可以查看《JAV...原创 2018-06-10 17:22:18 · 77944 阅读 · 1 评论 -
JAVA8 stream接口 distinct,sorted,peek,limit,skip
下面,我们来看其他的剩余的一些中间操作,各自的作用,我也通过注释,做了解析,方法定义如下;//去重复 Stream<T> distinct(); //排序 Stream<T> sorted(); //根据属性排序 Stream<T> sorted(Comparator<? super T> comparator); //对对象的进行...原创 2018-06-10 20:25:12 · 14551 阅读 · 2 评论 -
java8 srteam接口终端操作reduce操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的reduce操作,reduce是一种归约操作,将流归约成一个值的操作叫做归约操作,用函数式编程语言的术语来说,这种称为折叠(fold);我们先看下函数的定义T reduce(T identity, BinaryOperator<T> accumulato...原创 2018-07-01 16:04:21 · 7327 阅读 · 4 评论 -
java8 函数式接口简介
在java8中,lambda表达式所用的接口,必须是函数式接口;函数式接口的定义:接口中只有一个抽象方法的接口,称为函数式接口;可以使用@FunctionalInterface注解修饰,对该接口做检查;如果接口里,有多个抽象类,使用该注解,会有语法错误。在java8中的函数式接口,有很多,比说,无参无返回值的(Runnable接口),有一个参数,无返回值的(Consumer),有多个参...原创 2018-07-08 20:49:57 · 13613 阅读 · 2 评论 -
java8 lambda表达式,方法的引用以及构造器的引用
在前面有讲述过lambda表达式中,使用的都是函数式接口;关于lambda表达式简介《java8 Lambda表达式简介》;关于函数式接口《java8 函数式接口简介》;这篇主要是讲,在lambda表达式中,使用方法的引用,来传递方法方法的行为参数化;方法的引用,在《java8实战》介绍如下:方法的引用让你可以重复使用现有的方法定义,并像lambda一样传递他们,在一些情况下,比起使用...原创 2018-07-08 23:19:07 · 17596 阅读 · 14 评论 -
java8 Optional静态类简介,以及用法
在java8中,很多的stream的终端操作,都返回了一个Optional<T>对象,这个对象,是用来解决空指针的问题,而产生的一个类;我们先看下,这个类的一些定义import java.util.NoSuchElementException;import java.util.Objects;import java.util.function.Consumer;import...原创 2018-07-07 17:47:01 · 7078 阅读 · 5 评论 -
java8 stream接口 终端操作 collect操作
在之前,我们有说到,java8中的stream操作,分为中间操作和终端操作,在终端操作中,前面也看到了归约的方式,这篇主要是也说的归约操作的方式collect,收集器操作,收集器操作,可以当做是一种更高级的归约操作;先看下stream中的collect操作 <R> R collect(Supplier<R> supplier,BiConsumer<R, ? ...原创 2018-07-15 15:53:11 · 13261 阅读 · 10 评论 -
java8 教程总章 以及一点感想
Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等。如今距离java8发布,已经过了4年多的时间了,很早就有关注过这些,但是大多数时候,感觉有的同事在使用,觉得很酷;又或者怎么样的,让你去百度...原创 2018-07-15 16:31:54 · 2108 阅读 · 8 评论 -
JAVA8 UnaryOperator接口
我们先看下这个接口的定义@FunctionalInterfacepublic interface UnaryOperator<T> extends Function<T, T> { /** * Returns a unary operator that always returns its input argument. * ...原创 2018-06-09 17:14:59 · 16816 阅读 · 7 评论 -
java8 Stream-创建流的几种方式
前面(《java8 Stream接口简介》),我们已经对stream这个接口,做了简单的介绍,下面,我们用几个案例,来看看流的几种创建方式String[] dd = { "a", "b", "c" }; Arrays.stream(dd).forEach(System.out::print);// abc System.out.println(); ...原创 2018-06-09 17:00:13 · 20305 阅读 · 1 评论 -
JAVA8 Function接口以及同类型的特化的接口
我们先来看下Funtion接口的定义@FunctionalInterfacepublic interface Function<T, R> { R apply(T t); default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {...原创 2018-06-07 22:00:57 · 18874 阅读 · 2 评论 -
JAVA8 Consumer接口
Consumer的语义是消费的意思,了解一些消息队列的同学,肯定对这个单词,有一定的理解,我们先看接口的定义@FunctionalInterfacepublic interface Consumer<T> { void accept(T t); default Consumer<T> andThen(Consumer<? supe...原创 2018-06-08 09:52:17 · 89502 阅读 · 23 评论 -
JAVA8 BiConsumer 接口
这个接口跟《JAVA8 Consumer接口》很像,表达的想法也是一致的,都是消费的意思,我们先看下接口定义@FunctionalInterfacepublic interface BiConsumer<T, U> { void accept(T t, U u); /**本接口中的accept先执行,传入的BiConsumer 接口类型的参数,后执行ac...原创 2018-06-23 10:44:00 · 48522 阅读 · 0 评论 -
java8 stream接口 终端操作 forEachOrdered和forEach
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》这篇开始介绍java8的终端操作,以及forEachOrdered和forEach;先看下这个函数的定义void forEach(Consumer<? super T> action); void forEachOrdered(Consumer<? super T> a...原创 2018-06-23 13:42:10 · 12301 阅读 · 0 评论 -
java8 stream接口 终端操作 toArray操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的toArray操作,我们先看下函数的定义以及实现 Object[] toArray(); <A> A[] toArray(IntFunction<A[]> generator); @Override @SuppressWarnings("...原创 2018-06-23 14:34:08 · 18167 阅读 · 0 评论 -
JAVA8 Supplier接口
下看下接口定义@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a result. * * @return a result */ T get();}supplier英 [səˈplaɪə(r)] 美 [səˈplaɪər] ...原创 2018-06-08 17:13:00 · 45633 阅读 · 10 评论 -
java8 stream接口 终端操作 min,max,findFirst,findAny操作
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的min,max,findFirst,findAny操作,我们先看下函数的定义 Optional<T> min(Comparator<? super T> comparator); Optional<T> max(Compa...原创 2018-06-23 15:15:36 · 115971 阅读 · 4 评论 -
java8 stream接口终端操作 count,anyMatch,allMatch,noneMatch
对于中间操作和终端操作的定义,请看《JAVA8 stream接口 中间操作和终端操作》,这篇主要讲述的是stream的count,anyMatch,allMatch,noneMatch操作,我们先看下函数的定义 long count(); boolean anyMatch(Predicate<? super T> predicate); ...原创 2018-06-23 15:46:33 · 203053 阅读 · 14 评论 -
java8 Stream接口简介
首先我们先来认识下一个的接口的意思,流是什么?流是java API中的新的成员,它可以让你用声明式的方式处理集合,简单点说,可以看成遍历数据的一个高级点的迭代器,也可以看做一个工厂,数据处理的工厂,当然,流还天然的支持并行操作;也就不用去写复杂的多线程的代码,下面我先来看下stream的接口定义public interface Stream<T> extends BaseSt...原创 2018-06-09 15:41:28 · 13340 阅读 · 0 评论 -
JAVA8 Predicate接口
predicate英 [ˈpredɪkət] 美 ['predɪkət] vt.断言,断定;宣布,宣讲;使基于vi.断言,断定n.谓语;述语adj.谓语的;述语的上述可以看到,predicate是谓语的意思,在接口中,可以用作判断使用;我们先看接口的定义@FunctionalInterfacepublic interface Predicate<T&g...原创 2018-06-06 21:53:40 · 12987 阅读 · 6 评论