Java8的stream().map()用法详解
Java8的stream().map()用法
在Java编码过程中可能会遇到这个场景
遍历一个列表,对列表中的属性进行转换、赋值等操作形成我们想要的一个新列表。通常我们的常规思路就是直接使用for循环。
在Java8引入lambda表达式后我们可以使用stream流链式处理的方式,形成新流来达到预期效果。
stream操作比较多,这里主要针对map()
举出下面三个列子
体验stream().map().collect(Collectors.toList())对于集合元素处理的用法。
package com.base.labguage.java8;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamMap {
private static class People{
private String name;
private Integer age;
private String address;
// 只给出构造方法,忽略get/set细节
public People(String name, Integer age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
}
public static class PeoplePub{
private String name;
private Integer age;
// 只给出构造方法,忽略get/set细节
public PeoplePub(String name, Integer age) {
this.name = name;
this.age = age;
}
// 重写toString方法
public String toString(){
return "(" + this.name + "," + this.age + ")";
}
}
public static void main(String[] args) {
List<People> peoples = Arrays.asList(
new People("zs", 25, "cs"),
new People("ls", 28, "bj"),
new People("ww", 23, "nj")
);
// List -> String
List<String> names = peoples.stream().map(p -> p.getName()).collect(Collectors.toList());
// stream流实现英文字母转大写
List<String> upNames = names.stream().map(String::toUpperCase).collect(Collectors.toList());
// stream流实现数字乘倍数
List<Integer> ages = peoples.stream().map(p -> p.getAge() * 2).collect(Collectors.toList());
// list - > new List
List<PeoplePub> peoplePubs = peoples.stream().map(p -> {
return new PeoplePub(p.getName(), p.getAge());
}).collect(Collectors.toList());
System.out.println("to print upnames List : " + upNames);
System.out.println("to print ages List : " + ages);
System.out.println("to print new people List" + peoplePubs.toString());
}
}
控制台打印结果:
to print upnames List : [ZS, LS, WW]
to print ages List : [50, 56, 46]
to print new people List[(zs,25), (ls,28), (ww,23)]
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
解决MyEclipse中Maven设置jdk版本jdk1.8报错问题
今天安装了jdk1.8、tomcat8、和maven3.5.2,弄好后在myeclipse新建了一个maven项目,项目默认是jdk1.5,改成jdk1.8后项目报错2018-10-10
Java环境中MyBatis与Spring或Spring MVC框架的集成方法
和MyBatis类似,Spring或者Spring MVC框架在Web应用程序的运作中同样主要负责处理数据库事务,这里我们就来看一下Java环境中MyBatis与Spring或Spring MVC框架的集成方法2016-06-06
Java Lambda 表达式从入门到实战彻底搞懂函数式编程
本文详细介绍了Java 8中的Lambda表达式,包括为什么需要Lambda、Lambda的核心概念、语法详解、实战场景、与匿名内部类的区别、优缺点以及应用建议,Lambda表达式简化了代码编写,提升了开发效率,是函数式编程的重要体现,感兴趣的朋友跟随小编一起看看吧2025-12-12
解决Spring boot2.0+配置拦截器拦截静态资源的问题
这篇文章主要介绍了解决Spring boot2.0+配置拦截器拦截静态资源的问题,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2019-08-08


最新评论