Java8-11-Stream收集器源码分析与自定义收集器

2018-02-02
阅读 9 分钟
2.3k
上一篇我们系统的学习了Stream的分组分区,本篇我们学习下Stream中的收集器。那么什么是收集器呢,在之前的课程中,我们学习了可以通过Stream对集合中的元素进行例如映射,过滤,分组,分区等操作。例如下面将所有元素转成大写就是用map映射操作

Java8-10-Stream分组与分区详解

2017-12-11
阅读 3 分钟
33.3k
上一篇我们介绍了Strem的概念与实际的一些操作,本篇我们继续来学习Stream的另一个重要操作,分组与分区。我们在上一篇介绍Stream的操作时,会经常使用到Collectors这个类,这个类实际上是一个封装了很多常用的汇聚操作的一个工厂类。我们之前用到过

Java8-9-Stream介绍与操作方式详解

2017-12-06
阅读 6 分钟
10.4k
上一篇系统学了方法引用的几种类型及应用场景,本篇开始我们正式学习Stream。Java8中的Stream与lambda表达式可以说是相伴相生的,通过Stream我们可以更好的更为流畅更为语义化的操作集合。Stream api都位于java.util.stream包中。其中就包含了最核心的Stream接口,一个Stream实例可以串行或者并行操作一组元素序列,官方...

Java8-8-方法引用详解

2017-12-04
阅读 4 分钟
17.8k
上一篇我们详细介绍了Optional类用来避免空指针问题,本篇我们全面了解一下Java8中的方法引用特性。方法引用是lambda表达式的一种特殊形式,如果正好有某个方法满足一个lambda表达式的形式,那就可以将这个lambda表达式用方法引用的方式表示,但是如果这个lambda表达式的比较复杂就不能用方法引用进行替换。实际上方法引...

Java8-7-Optional类详解

2017-12-03
阅读 2 分钟
6.8k
上一篇我们详细介绍了Predicate函数式接口中主要的一些方法使用,本篇介绍的Optional虽然并不是一个函数式接口,但是也是一个极其重要的类。

Java8-6-Predicate接口详解

2017-12-02
阅读 5 分钟
40k
上一篇我们学习了Function和BiFunction函数式接口,本篇继续了解下其他常用的函数式接口。先来看下PredicatePredicate函数式接口的主要作用就是提供一个test方法,接受一个参数返回一个布尔类型,Predicate在stream api中进行一些判断的时候非常常用。

Java8-5-Function函数式接口进阶与默认方法详解

2017-12-01
阅读 5 分钟
18k
Java8-5-函数式接口进阶与默认方法详解上一篇我们快速的借助示例演示了stream api的简单应用,体会到了使用stream api对集合处理的便捷和其与函数式接口密不可分的关系,所以为了更高效的使用stream api,有必要更熟练的掌握函数式接口。Java8中内置了大量的函数式接口,接下来我们选择一些比较常用的一起学习下。

Java8-4-stream api和函数式编程简单应用

2017-11-30
阅读 3 分钟
6.1k
上一篇文章中,我们介绍了几个Java8内置的函数式接口的特点和使用方式,并在最后引出了stream api的知识点,接下来我们开始学习Java8中的stream api。先假设一个简单的需求,存在一个字符串集合,我们想把所有长度大于5的字符串转换成大写输出到控制台,之前我们可能会直接这么做

Java8-3-深入理解函数式编程模型

2017-11-29
阅读 4 分钟
7.9k
上一篇文章中,我们总体介绍了创建函数式接口实例的几种方式以及Java8中接口新增的默认方法特性,接下来我们来看下Java8中已经为我们提供的几种典型的函数式接口先看一个示例

Java8-2-默认方法和函数式接口实例其它创建方式

2017-11-29
阅读 3 分钟
6.8k
这段程序很简单,首先初始化一个Integer类型的集合然后向控制台输出每个元素。其中我们注意到forEach方法,它就是Java8中新增加的默认方法。

Java8-1-初识Lambda表达式与函数式接口

2017-11-29
阅读 4 分钟
8.3k
Java8被称作Java史上变化最大的一个版本。其中包含很多重要的新特性,最核心的就是增加了Lambda表达式和Stream API。这两者也可以结合在一起使用。首先来看下什么是Lambda表达式。Lambda表达式,维基百科上的解释是一种用于表示匿名函数和闭包的运算符,感觉看到这个解释还是觉得很抽象,接下来我们看一个例子