lambda表达式的map和flatmap的区别
发表于|更新于
|浏览量:
map: 对于Stream中包含的元素使用给定的转换函数进行转换操作,新生成的Stream只包含转换生成的元素。这个方法有三个对于原始类型的变种方法,分别是:mapToInt,mapToLong和mapToDouble。这三个方法也比较好理解,比如mapToInt就是把原始Stream转换成一个新的Stream,这个新生成的Stream中的元素都是int类型。之所以会有这样三个变种方法,可以免除自动装箱/拆箱的额外消耗;
map方法示意图:
flatMap:和map类似,不同的是其每个元素转换得到的是Stream对象,会把子Stream中的元素压缩到父集合中;
flatMap方法示意图:
文章作者: 无知的小狼
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 无知的小狼!
相关推荐
2019-06-30
关于weblogic11g更换jdk的问题
这边的weblogic默认的jdk的版本是jdk1.6,服务器上jdk1.6和1.7都安装的有。然后开发用的jdk的版本是1.7。虽然也很老,但是没办法,现在我们开发用的确实是jdk1.7。在这样的环境下,我们如何找到对weblogic的默认jdk进行更换呢。 通过百度和自己的动手尝试,然后具体的操作步骤如下: 登录服务器账户,然后命令行输入 1rpm -qa|grep jdk 这样服务器安装的所有jdk都可以看见了。1java-1.7-openjdk-devel-1.7.0.65-2.5.1.2.e16_5.x86_64 2、然后找到jdk1.7的安装路径,复制上面找到的jdk的名称1rpm -ql java-1.7-openjdk-devel-1.7.0.65-2.5.1.2.e16_5.x86_64 3、找到最后文件夹名字为bin的就是jdk1.7的安装路径1/usr/lib/jvm/java-1.7-openjdk-devel-1.7.0.65-2.5.1.2.e16_5.x86_64/bin 4、打开weblogic的安装目录,找到startWebLogic.sh在界...
2019-06-30
红黑树
在看jdk的HashMap的代码的时候,看到了jdk8的实现方式用到了红黑树,然后,就看了一下。 废话少讲,开始红黑树的简介。 红黑树的特性 1.每个节点或者是黑色,或者是红色。 2.根节点是黑色。 3.每个叶子节点是黑色。 [注意:这里叶子节点,是指为空的叶子节点! 4.如果一个节点是红色的,则它的子节点必须是黑色的。 5.从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。 红黑树的添加: 第一步: 将红黑树当作一颗二叉查找树,将节点插入。 第二步:将插入的节点着色为”红色”。 第三步: 通过一系列的旋转或着色等操作,使之重新成为一颗红黑树。 伪代码: 123456789101112131415161718RB-INSERT(T, z) 01 y ← nil[T] // 新建节点“y”,将y设为空节点。02 x ← root[T] // 设“红黑树T”的根节点为“x”03 while x ≠ nil[T] // 找出要插入的节点“z”...
2019-06-30
如何把码云上的项目克隆到本地,以及本地如何提交到远程的码云仓库
由于刚刚接触码云不久,github几乎也没有使用过。所以在操作git的过程中还是碰到了一些问题。现在把这些问题拿出来和大家分享一下。 1、在码云上新建一个项目。 2、拿到的地址类似于: 1git@gitee.com:------git 3、在gitbash中进行clone,将服务器端的项目检出 12git clone git@gitee.com:------git 上面的地址 4、检出的项目就有了.git这个这个文件夹。和svn的操作类似。在你检出的目录就是你本地的repository。5、代码进行修改,或者新增文件之后执行 1git init 初始化你的项目 6、声明用户名 1git config --global user.name "xxx",谁修改的 7、声明邮箱 1git config --global user.emali "xx@xx.com 码云账号 8、然后就是必须要执行的操作了 1git add . 不要忘记".";添加到仓库 9、 1git commit -m '内容' 解释提交代码 1...
2019-06-30
Redis数据库的基本语法(1)
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。Redis 键(key)下表给出了与 Redis 键相关的基本命令: 序号 命令 描述 1 DEL key 该命令用于在 key 存在时删除 key。 2 DUMP key 序列化给定 key ,并返回被序列化的值。 3 EXISTS key 检查给定 key 是否存在。 4 EXPIRE key seconds 为给定 key 设置过期时间。 5 EXPIREAT key timestamp EXPIREAT ...
2019-06-30
枚举类 get Set方法 在lombok中的坑
lombok的类如下所示: 12345678910111213141516171819202122232425package com.divx.service.model.task;import com.divx.service.model.BaseTypeMedia;import lombok.Data;/** * @author wuzhilang * @Title: QuestionResult * @ProjectName yxt-parent * @Description: QuestionResult * @date 2019/6/2015:59 */@Datapublic class QuestionResult { private long questionId; private BaseTypeMedia.eQuestionType qType; private String userAnswer; private String standardAnswer; private long userId; private int instId; priva...
2019-06-30
建造者模式
建造者模式(Builder Pattern) 也叫生成器模式,其定义如下:Separate the construction of a complex object from its representation so that the same construction process can create different representations.(将一个复杂对象的构建与他的表示分离,是得同样的构建过程可以创建不同的表示。)在建造者模式中,有如下4个角色: Product产品类通常是实现了模板方法模式,也就是有模板方法和基本方法。 Builder抽象建造者规范产品的组件,一般是由子类实现。例子中的CarBuilder就属于抽象建造者。 ConcreteBuilder具体建造者实现抽象类定义的所有方法,并且返回一个组建好的对象。 Director导演类负责安排已有模块的顺序,然后告诉Builder开始建造,在上面的例子中就是我们的老大,xx公司找到老大,说我要这个或那个类型的车辆模型,然后老大就把命令传递给我,我和我的团队就开始拼命的建造,于是一个项目建设完毕了...
评论
