当前位置: 首页 > news >正文

java8特性 stream流中map函数的使用

map 函数的作用就是针对管道流中的每一个数据元素进行转换操作。

例如

将集合中的每一个字符串,全部转换成大写!

List<String> collect = alpha.stream().map(String::toUpperCase).collect(Collectors.toList());
//上面使用了方法引用,和下面的lambda表达式语法效果是一样的
//List<String> collect = alpha.stream().map(s -> s.toUpperCase()).collect(Collectors.toList());

直接返回各个元素的长度生成一个新的数组,也就是说不仅可以处理数据,还可以在处理数据的过程中转换数据类型

List<String> alpha = Arrays.asList("Monkey", "Lion", "Giraffe", "Lemur");
List<Integer> lengths = alpha.stream().map(String::length).collect(Collectors.toList());System.out.println(lengths); //[6, 4, 7, 5]

处理对象数据

public static void main(String[] args){Employee e1 = new Employee(1,23,"M","Rick","Beethovan");Employee e2 = new Employee(2,13,"F","Martina","Hengis");Employee e3 = new Employee(3,43,"M","Ricky","Martin");Employee e4 = new Employee(4,26,"M","Jon","Lowman");Employee e5 = new Employee(5,19,"F","Cristine","Maria");Employee e6 = new Employee(6,15,"M","David","Feezor");Employee e7 = new Employee(7,68,"F","Melissa","Roy");Employee e8 = new Employee(8,79,"M","Alex","Gussin");Employee e9 = new Employee(9,15,"F","Neetu","Singh");Employee e10 = new Employee(10,45,"M","Naveen","Jain");List<Employee> employees = Arrays.asList(e1, e2, e3, e4, e5, e6, e7, e8, e9, e10);/*List<Employee> maped = employees.stream().map(e -> {e.setAge(e.getAge() + 1);e.setGender(e.getGender().equals("M")?"male":"female");return e;}).collect(Collectors.toList());*/List<Employee> maped = employees.stream().peek(e -> {e.setAge(e.getAge() + 1);e.setGender(e.getGender().equals("M")?"male":"female");}).collect(Collectors.toList());System.out.println(maped);}
http://www.lryc.cn/news/318137.html

相关文章:

  • 【Emgu CV教程】9.5、形态学常用操作之形态学梯度
  • 算法笔记之蓝桥杯pat系统备考(2)
  • 基于SpringBoot+Druid实现多数据源:注解+编程式
  • 已解决org.apache.zookeeper.KeeperException.BadVersionException异常的正确解冲方法,亲测有效!!!
  • 数据结构:堆
  • CSS中三栏布局的实现
  • Linux搭建我的世界(MC)整合包服务器,All the Mods 9(ATM9)整合包开服教程
  • 让数据在业务间高效流转,镜舟科技与NineData完成产品兼容互认
  • 2.1HTML5基本结构
  • 设置浏览器显示小于12px以下字体
  • web蓝桥杯真题:成语学习
  • 外包干了5天,技术明显退步。。。。。
  • Vue:自定义消息通知组件
  • 2023 收入最高的十大编程语言
  • Github 2024-03-11 开源项目周报 Top15
  • 【DAY10 软考中级备考笔记】数据结构 图
  • java-ssm-jsp基于java的餐厅点餐系统的设计与实现
  • 蓝桥杯(1):python排序
  • SpringMVC请求、响应和拦截器的使用
  • 基于springboot+layui仓库管理系统设计和实现
  • 【开源-土拨鼠充电系统】鸿蒙 HarmonyOS 4.0+微信小程序+云平台
  • [抽象]工厂模式([Abstract] Factory)——创建型模式
  • QT网络编程之实现UDP广播发送和接收
  • SSL VPN基础原理
  • 深入理解FTP协议:文件传输的桥梁
  • 数字化转型导师坚鹏:金融机构数字化运营
  • 一、C#冒泡排序算法
  • docker部署mysql5
  • Github 2024-03-15 Java开源项目日报 Top10
  • SQLiteC/C++接口详细介绍之sqlite3类(六)