一个对象的集合转化成另一个对象的集合 PO集合转换为VO集合

准备数据

import com.google.common.base.Function;
import com.google.common.collect.Lists;
import lombok.*;
import lombok.extern.slf4j.Slf4j;import java.util.*;
import java.util.concurrent.ConcurrentMap;
import java.util.stream.Collectors;
import java.util.stream.Stream;@Slf4j
public class StreamTest {public static List<Student> stus = new ArrayList();static {Student s1 = new Student("2015134001", "小3", 15, "1501");Student s2 = new Student("2015134003", "小4", 14, "1503");Student s3 = new Student("2015134006", "小5", 15, "1501");Student s4 = new Student("2015134008", "小6", 17, "1505");Student s5 = new Student("2015134008", "小7", 19, "1505");Student s6 = new Student("2015134008", "小8", 76, "1505");Student s7 = new Student("2015134008", "小9", 7, "1505");stus.add(s1);stus.add(s2);stus.add(s3);stus.add(s4);stus.add(s5);stus.add(s6);stus.add(s7);stus.add(new Student("2015134012", "小c", 13, "1503"));stus.add(new Student("2015134013", "小s", 14, "1503"));stus.add(new Student("2015134015", "小d", 15, "1504"));stus.add(new Student("2015134018", "小y", 16, "1505"));}public static void main (String[] args){/*List<Pepole> transform = Lists.transform(stus, new Function<Student, Pepole>() {public Pepole apply( Student entity) {// 内部对象的转换操作Pepole vo = new Pepole();vo.setId(entity.getId());vo.setName(entity.getName());vo.setAge(entity.getAge());return vo;}});*/List<Pepole> transform1 = Lists.transform(stus,(entity)->{Pepole vo = new Pepole();vo.setId(entity.getId());vo.setName(entity.getName());vo.setAge(entity.getAge());return vo;});log.info("新集合,{}",transform1);}}
@Data
@Getter
@Setter
@AllArgsConstructor
class Student {private String id ;private String name ;private int  age ;private String grade ;}
@Data
@NoArgsConstructor
@AllArgsConstructor
class Pepole {private String id ;private String name ;private int  age ;}

一种方法 引入com.google.guava 工具类

dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>21.0</version>
</dependency>

方法

lists方法:

public static <F, T> List<T> transform(List<F> fromList, Function<? super F, ? extends T> function)方法返回一个List对象,传入参数,要转换的集合对象,一个函数对象,传入要转换的集合对象的子对象 转换为目标集合的子对象
List<Pepole> transform1 = Lists.transform(stus,(entity)->{Pepole vo = new Pepole();vo.setId(entity.getId());vo.setName(entity.getName());vo.setAge(entity.getAge());return vo;});log.info("新集合,{}",transform1);

2.直接使用Java8 的Stream api

List<Pepole> transform1 = stus.stream().map(e -> new Pepole(e.getId(), e.getName(),e.getAge())).collect(Collectors.toList());
log.info("新集合,{}",transform1);

3.借助工具类

if(CollectionUtils.isNotEmpty(stus)){List<Pepole> transform1 = stus.stream().map(e -> {Pepole p = new Pepole();BeanUtils.copyProperties(e, p);return p;}).collect(Collectors.toList());log.info("新集合,{}",transform1);}

一个对象的集合转化成另一个对象的集合 PO集合转换为VO集合相关推荐

  1. Map集合转换成实体类对象,实体类对象转换为map集合,互转工具类

    注 : 2019-06-16日 增加第六节 map与实体互转工具类,直接看第6节; 1.调用这个方法BeanMapUtils.mapToBean(),实现map集合转实体类对象; 注意: 这个方法转换 ...

  2. JAVA8 利用stream流将一个对象集合转换成另一个对象集合

    // 从数据库中查询出的对象集合List<OperationStation> operationStations = operationStationJoinMapper.selectJo ...

  3. 小程序判断一个对象是否为空 length不为0的空对象(空集合list)

    小程序判断一个对象是否为空 length不为0的空对象(空集合list) 集合为空但list的length不为0反而为1:使用list.isEmpty 或者 list.size都返回undefined ...

  4. python filestorage对象怎么转化成字符串_Python面试的10个常见问题及答案,检验你的学习成果吧!...

    导语 Python已经是现在最受欢迎的编程语言,随着这几年云计算,机器学习,人工智能等技术的发展,学习Python的人越来越多,职位的要求也越来越高,下面我收集了10个面试中经常被问到的问题和答案供大 ...

  5. JavaScript面试篇之正则表达式:“get-element-by-id”如何转化成驼峰,常用邮箱、身份证、QQ号等信息如何校验等等

    JavaScript面试篇之正则表达式:"get-element-by-id"如何转化成驼峰,常用邮箱.身份证.QQ号等信息如何校验等等 前言 一.简介 二.匹配规则 1.修饰符 ...

  6. 把list集合转换成另一个list集合的三个方法

    1.把list集合转换成另一个list集合方法1,使用jdk1.8流 List<ModelInputNode.ModelColumns> modelColumns=standardTabl ...

  7. 【各种转换】数组转换成字符串,集合转换成字符串,字符串转集合

    由于在工作中经常用到各种类型的互相转换,这里总结一下: 1. 基本类型转字符串: 2. 将list集合转化成string数组:用toArray 3. String数组转集合 4. String数组转换 ...

  8. Java8两个list集合合并成一个list集合

    为什么要用Lambda表达式和Stream流做集合的处理? 因为效率高.代码简洁.高端大气上档次啊! ES6 1.将一个集合中每一个对象的某个元素取出来作为一个新的集合var newList = ol ...

  9. 把一个对象的值赋给另一个对象中对应的属性

    当需要把一个对象的值赋给另一个对象中对应的属性时,写一大堆的get()和set()是很麻烦的事情,而且代码看起来会很丑.在项目中屡次接触过一个方法(函数),这个方法(函数)可以把一个对象中的值全部赋给 ...

最新文章

  1. Spring Boot 的配置文件
  2. 华为2288H V5服务器 RAID操作
  3. 3 Curator框架实现分布式锁
  4. linux(CentOs6)下jdk安装,mysql安装,tomcat安装,及web项目部署
  5. raspberrypi python传感器_Raspberry Pi和Arduino读取串行传感器d
  6. [导入]体验Asp.Net Mvc Preview5(3)-探索ModelBinder的工作原理
  7. zappos核心价值_尽管Zappos说了什么,中层管理人员仍然很重要
  8. MRAppMaster详细分析
  9. 有哪些问题应该得到解决?
  10. python的networkx 算法_python图算法库Networkx笔记 - Node and Centrality
  11. 软件工程实践_Task2_sudoku
  12. 舵机控制原理/舵机内部电路原理
  13. PS绘制的路径不见了
  14. 游戏思考11:游戏服务器类型简单分类(有服务器的会讲的详细一点)
  15. PR剪辑视频画面翻转缩放滑动特效转场PR预设
  16. C与C++中的符号隐藏
  17. LaTeX数学表达式
  18. 网站优化都有哪些方法 网站优化技巧?
  19. deepfacelab应用报错原因和解决办法
  20. 解决电脑“自动修复 电脑未正确启动/无法修复你的电脑”

热门文章

  1. node-logger
  2. 成为JavaGC专家Part I — 深入浅出Java垃圾回收机制 转载http://www.importnew.com/1993.html
  3. Facebook的俄勒冈机房
  4. strtok() and strtod()
  5. WordPress 增加 keywords 和 description
  6. 米家智能家居经常离线_所有智能家居集线器已经足够
  7. 等保测评2.0—防火墙测评记录
  8. paddle第十九期3天训练营3.14-day0~1
  9. CNN卷土重来!超越Transformer!FAIR重新设计纯卷积架构:ConvNeXt
  10. Node部署和运维工作量降低80%,腾讯NOW直播是怎么做到的?