Stream作为Java 8的一大特点,是对集合对象功能的增强,***.stream().map(...).collect(Collectors.toList())中,***需要是一个List类型的对象,

有实体类Person和Dto类PersonDto如下

public class Person {private String name;private Integer age;private String gender;private String hobby;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getHobby() {return hobby;}public void setHobby(String hobby) {this.hobby = hobby;}
}
public class PersonDto {private String name;private Integer age;private String gender;private List<String> hobby;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public List<String> getHobby() {return hobby;}public void setHobby(List<String> hobby) {this.hobby = hobby;}
}

自定义映射函数,实现Person类与PersonDto类之间的相互映射

public class StreamMap {public void Test1(List<Person> person){List<PersonDto> personDto = person.stream().map(StreamMap::convertPersonToPersonDto).collect(Collectors.toList());List<Person> personAfter = personDto.stream().map(StreamMap::convertPersonDtoToPerson).collect(Collectors.toList());}public static Person convertPersonDtoToPerson(PersonDto personDto){Person person = new Person();person.setName(personDto.getName());person.setAge(personDto.getAge());person.setGender(personDto.getGender());StringBuilder sb = new StringBuilder("[");for(int i = 0; i < personDto.getHobby().size(); i++){sb.append(personDto.getHobby().get(i)+",");}sb.append("]");person.setHobby(sb.toString());return person;}public static PersonDto convertPersonToPersonDto(Person person){PersonDto personDto = new PersonDto();personDto.setName(person.getName());personDto.setAge(person.getAge());personDto.setGender(person.getGender());List<String> hobby = new ArrayList<>();String[] temp = person.getHobby().split(",");for(int i = 0; i < temp.length; i++){hobby.add(temp[i]);}personDto.setHobby(hobby);return personDto;}
}

参考博客

stream().map()相关推荐

  1. stream map方法_Java Stream中map和flatMap方法

    最近看到一篇讲stream语法的文章,学习Java中map()和flatMap()方法之间的区别. 虽然看起来这两种方法都做同样的事情,都是做的映射操作,但实际上差之毫厘谬以千里. 通过演示Demo中 ...

  2. 通俗易懂,java8 .stream().map().collect()用法

    API: https://www.runoob.com/java/java8-streams.html 模板: mylist.stream().map(myfunction->{return i ...

  3. Java8 stream().map()将对象转换为其他对象

    Java8 stream().map()将对象转换为其他对象 1: 将对象List转为List public class user{private String name;private String ...

  4. java stream map

    返回 调用 <R> Stream<R> map(Function<? super T,? extends R> mapper) 参数是Interface Funct ...

  5. java8 stream().map().collect()用法

    java8 stream().map().collect()用法 有一个集合: List<User> users = getList(); //从数据库查询的用户集合 现在想获取User的 ...

  6. stream().map().collect()用法

    有一个集合: List users = getList(); //从数据库查询的用户集合 现在想获取User的身份证号码:在后续的逻辑处理中要用: 常用的方法我们大家都知道,用for循环, List ...

  7. Java Stream map flatMap mapMulti的升维和降维

    //升维List<Integer> list = List.of(4, 5, 6);System.out.println("第1个");//mapMulti产生额外的一 ...

  8. strm().filter().collect()和stream().map().collect()的作用

    在看代码的时候看到了相关方法,自己在写了个例子练习一下 public class People {private Integer id;private String name;private Bool ...

  9. java8 .map是什么意思_JDK8 stream().map() 作用

    比如迭代 List 返回 List:很多时候我们需要这样的处理.public static void main(String[] args) { List list = new ArrayList&l ...

  10. java8 stream map flatMap

    集合操作stream出了以后简化了代码和增强了可读性. 今天使用map和flatMap简单记录一下. 例: public class Test {public static void main(Str ...

最新文章

  1. java new newinstance_Java中newInstance()和new()区别
  2. 使用互斥元保护共享数据-lock_guard
  3. 基于@RabbitListener声明LazyQueue
  4. 每天都在支付,你真的了解信息流和资金流?
  5. PyTorch框架学习十六——正则化与Dropout
  6. 【今日CV 视觉论文速览】 19 Nov 2018
  7. jquery 全选获取值
  8. Java 中的接口有什么作用?为什么不直接用类?
  9. 元素之和最接近 0 的区间(部分和)
  10. Spring 单元测试(Junit)
  11. java uclinux_Java在基于uclinux的嵌入式系统中的应用
  12. Web网站模板-横向滚动个人简历响应式网站模板(HTML+CSS+JavaScript)
  13. matplotlib之pyplot模块——填充多边形(fill)
  14. linux telnet qq邮箱,用telnet测试给qq邮箱发邮件,中途可能腾讯要你开启smtp服务器...
  15. python 笔记:打开nii格式(nibabel 库)
  16. Android开发 实现跑马灯效果滚动字幕
  17. Springboot+Mongodb实现汽车美容服务管理
  18. 详细讲解Html语言的书,HTML语言基础讲解.ppt
  19. css永远处于底部,慕士塔格体能训练
  20. php 汉王云名片_超弦云名片,让你彻底告别纸质名片!

热门文章

  1. 安卓开发球面波干涉现象仿真app
  2. new Date(date).getTime()不兼容苹果手机
  3. Brightcove推出视频流媒体解决方案Communications Studio,提升内部传播能力
  4. Android崩溃日志框架,崩溃日志上传框架 LogReport
  5. Python小白零基础入门 —— 字典
  6. 计算机会计系统风险与防范论文,【会计电算化论文】会计电算化的风险与防范措施(共3301字)...
  7. FLUENT GAMBIT 教学辅助助手
  8. 酷播云二维码美化添加自己logo图标的操作教程(原创)
  9. 信息工程学院的毕业晚会
  10. 我国网络安全等级保护制度的主要内容