java stream.map 用法,JAVA stream map

  java stream.map 用法,JAVA stream map

  

目录

一、回顾溪流管道流地图的基础用法二、处理非字符串类型集合元素三、再复杂一点:处理对象数据格式转换四、平面地图

 

  

一、回顾Stream管道流map的基础用法

最简单的需求:将集合中的每一个字符串,全部转换成大写!

 

  ListString alpha=Arrays.asList(猴子,狮子,长颈鹿,狐猴);//不使用溪流管道流ListString alpha upper=new ArrayList();for(字符串s : alpha){ alpha upper。add(s . toupper case());}系统。出去。println(阿尔法上);//[猴子,狮子,长颈鹿,狐猴]//使用溪流管道流ListString collect=alpha.stream().映射(String:toUpperCase).收藏(收藏者。to list());//上面使用了方法引用,和下面的希腊字母的第11个表达式语法效果是一样的//ListString collect=alpha。流().map(s - s.toUpperCase()).收藏(收藏者。to list());系统。出去。println(收集);//[猴子,狮子,长颈鹿,狐猴]所以地图函数的作用就是针对管道流中的每一个数据元素进行转换操作。

  

二、处理非字符串类型集合元素

地图()函数不仅可以处理数据,还可以转换数据的类型。如下:

 

  列表整数长度=alpha。流().地图(字符串:长度).收藏(收藏者。to list());System.out.println(长度);//[6,4,7,5]流猴子,狮子,长颈鹿,狐猴)。mapToInt(字符串:长度).forEach(系统。out :3360 println);输出如下:

  6475

  除了地图输入。还有马普托杜尔毛托隆等等用法

  

三、再复杂一点:处理对象数据格式转换

还是使用上一节中的雇员类,创建10个对象。需求如下:

 

  将每一个雇员的年龄增加一岁将性别中的" M "换成"男",女换成女性。公共静态void main(String[]args){雇员E1=新雇员(1,23, M ,瑞克,贝多芬);雇员e2=新雇员(2,13, F ,玛蒂娜,恒是);雇员e3=新雇员(3,43, M ,瑞奇,马丁);雇员e4=新雇员(4,26, M ,乔恩,洛曼);雇员e5=新雇员(5,19, F ,克莉丝汀,玛利亚);雇员e6=新雇员(6,15,米,大卫,费佐尔);雇员e7=新雇员(7,68, F ,梅丽莎,罗伊);雇员e8=新雇员(8,79, M ,亚历克斯,格斯辛);雇员e9=新雇员(9,15, F ,尼图,辛格);雇员e10=新雇员(10,45, M , Naveen , Jain );列出雇员雇员=数组。aslist(E1,e2,e3,e4,e5,e6,e7,e8,e9,E10);/*列出映射的员工=员工。流().map(e-{ e . setage(e . getage()1);e.setGender(e.getGender().等于( M )?男:女);返回e;}).收藏(收藏者。to list());*/列出映射的雇员=雇员。流().peek(e-{ e . setage(e . get age()1);e.setGender(e.getGender().等于( M )?男:女);}).收藏(收藏者。to list());系统。出去。println(maped);}由于地图的参数英语字母表中第五个字母就是返回值,所以可以用偷看函数偷看。函数是一种特殊的地图函数,当函数没有返回值或者参数就是返回值的时候可以使用偷看函数。

  

四、flatMap

地图可以对管道流中的数据进行转换操作,但是如果管道中还有管道该如何处理?即:如何处理二维数组及二维集合类。实现一个简单的需求:将"你好","世界"两个字符串组成的集合,元素的每一个字母打印出来。如果不用溪流我们怎么写?写注射毒品层为循环,第一层遍历字符串,并且将字符串拆分成茶数组,第二层为循环遍历茶数组。

 

  ListString words=arrays。aslist( hello , word );words.stream().映射(w数组。stream(w . split())//[[h,e,l,l,o],[w,o,r,l,d]].forEach(系统。out :3360 println);输出打印结果:

  Java。util . stream . reference pipeline $ head @ 3551 a94 Java . util . stream . reference pipeline $ head @ 531 be 3c 5不能用map方法实现,这个要求也不能用map方法实现。Map只能对一维数组进行操作。数组中有数组,管道中有管道。它不能处理每一个元素。

  FlatMap可以理解为将几个子管道中的所有数据展开到父管道中进行处理。

  words.stream()。flat map(w-arrays . stream(w . split())//[h,e,l,l,o,w,o,r,l,d]。forEach(system . out :3360 println);输出打印结果:

  第一个程序

  以上是java基础理论的详细介绍,流管道图操作示例。更多关于java Stream管道图操作的信息,请关注热门IT的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: