java8中的map 和reduce
map
1、使用map让集合里面的数字翻倍。
List<Integer> numbers = Lists.newArrayList(1,2,3,4,5);
List<Integer> doubleNumbers = numbers.stream()
.map(number -> number * 2)
.collect(Collectors.toList());
doubleNumbers.stream().forEach(r->System.out.println(r));
2、使用map可以对集合的数据进行处理然后返回其他类型的集合数据。如果是一个用户类的集合则可以使用这个方法获取用户姓名的列表。
List<String> collect = doubleNumbers.stream().map(n->”数字:”+n).collect(Collectors.toList());
reduce
3 、不提供初始值的reduce,返回值是Optional,表示可能为空,使用orElseGet可以返回一个null时的默认值
Optional<Integer> sum = numbers.stream().reduce((a, b) -> a + b);
Integer orElseGet = sum.orElseGet(() -> 0);
System.out.println(orElseGet);
结果是15
4.使用初始值的reduce,因为提供了初始值,所以返回值不再是Optional
Integer sum = numbers.stream()
.reduce(0, (a, b) -> a + b);
java8中的map 和reduce的更多相关文章
- java8中的map和reduce
		
java8中的map和reduce 标签: java8函数式mapreduce 2014-06-19 19:14 10330人阅读 评论(4) 收藏 举报 分类: java(47) FP(2) ...
 - Python 中的map和reduce学习笔记
		
map和reduce都是Python中的内置函数 map函数接受两个参数,第一个参数是函数,第二个参数是列表,将函数依次作用于列表中的元素,并返回一个元素 reduce同样以函数和列表作为参数,区别在 ...
 - javascript中的map和reduce
		
今天在看“廖雪峰官方网站”的js教程时,看到了map和reduce.其中有一个练习题是:不使用js内置的parseInt()函数,利用map和reduce操作实现一个string2int()函数(先将 ...
 - python中的map、reduce、filter、sorted函数
		
map.reduce.filter.sorted函数,这些函数都支持函数作为参数. map函数 map() 函数语法:map(function, iterable, ...) function -- ...
 - Hadoop 中关于 map,reduce 数量设置
		
map和reduce是hadoop的核心功能,hadoop正是通过多个map和reduce的并行运行来实现任务的分布式并行计算,从这个观点来看,如果将map和reduce的数量设置为1,那么用户的任务 ...
 - Python中的map( )和reduce( )
		
1.变量可以指向函数,也可以使用变量和参数的形式完成函数调用. 2.那么函数名是什么呢?函数名其实就是指向函数的变量!对于abs()这个函数,完全可以把函数名abs看成变量,它指向一个可以计算 ...
 - 07 Python中zip(),map(),filter(),reduce()用法
		
一. zip() zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 ...
 - Python 中的map、reduce函数用法
		
#-*- coding:UTF-8 -*- #map()函数接受两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回 def f(x): retu ...
 - 0004python中的map,reduce,lambda,filter
		
编程实现:a[0]*b[0] + a[1]*b[1] +...+a[i]*b[j] >>> a=[1,2,3,4,5]>>> b=[6,7,8,9,0] >& ...
 
随机推荐
- Python入门必学知识,30万年薪Python工程师带你学
			
Python是一种计算机编程语言.计算机编程语言和我们日常使用的自然语言有所不同,最大的区别就是,自然语言在不同的语境下有不同的理解,而计算机要根据编程语言执行任务,就必须保证编程语言写出的程序决不能 ...
 - BFPRT(中位数的中位数算法)
			
BFPRT(中位数的中位数算法) 类似于快排,但是划分区间的策略不一样. 分组,组内排序: 取出每组的中位数组成一个数组,再取这个数组的中位数: 以取出的中位数作为partition的轴.
 - Web application architecture overview
 - Java 布尔运算
			
章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...
 - HTML学习第二天
			
HTML学习第二天 今天学的比较少,有些乱,先只写一个知识点 三种样式表插入方式 外部样式表: <link rel="stylesheet" type="text/ ...
 - POJ 1961:Period
			
Period Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 14280 Accepted: 6773 Description F ...
 - Kafka--生产者
			
一个应用程序在很多情况下需要往Kafka写入消息:记录用户的活动(用于审计和分析),记录度量指标,保存日志消息,记录智能家电的信息,与其他应用程序进行异步通信,缓冲即将写入到数据库的数据,等等. 多样 ...
 - 快速进阶Vue3.0
			
在2019.10.5日发布了Vue3.0预览版源码,但是预计最早需要等到 2020 年第一季度才有可能发布 3.0 正式版. 可以直接看 github源码. 新版Vue 3.0计划并已实现的主要架构改 ...
 - 14.swoole学习笔记--异步读取文件
			
<?php //异步读取文件 swoole_async_readfile(__DIR__."/1.txt",function($filename,$content){ ech ...
 - 《新标准C++程序设计》3.9-3.10(C++学习笔记11)
			
一.C++程序到C程序的翻译 程序示例分析: C++: class CCar { public: int price; void SetPrice (int p); }; void CCar::Set ...