1、需求背景
有一个list中存放了若干个BeanA,想针对这个list进行遍历,取里面的BeanA中的几个字段,放到新的BeanB中,重新输出成新的list;
2、代码思路(使用lambda)
按照原来的写法,使用for循环遍历整个list,取出每个BeanA的字段set到BeanB中,然后把BeanB对象add到新的list中,遍历结束,新的list也就add结束;
按照lambda写法,需要使用.stream
、.map
、.collect
输出新的集合;
3、代码明细
//BeanA中字段:id,name,age,phone
//BeanB中字段:id,name,age
//e为BeanA对象
//BeanB对象需要有全参数的构造方法,这样才能方便的将e中取出的值直接set到BeanB对象中处理
List<BeanA> newList = oldList.stream()
.map(e -> new BeanB(e.getId(), e.getName(), e.getAge()))
.collect(Collectors.toList());