将集合转成另一种对象集合,过去是for循环遍历一次,现在改成流式写法
我觉得好处就是少写了5行代码,然后去补习其他更重要的内容
过去的写法:
static class A {
Long id;
public A() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
static class B {
Long id;
public B() {
}
public B(A a) {
this.id = a.id;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
public static void main(String[] args) {
// List<A> 转 List<B>
// 不使用lambda
List<A> as = Lists.newArrayList();
for(int i=0;i<3;i++){
// 创建一个对象
A a= new A();
// 给对象中属性赋值
a.setId((long) i);
// 将对象引用放进集合中
as.add(a);
}
// 将集合转成另一种类型的对象集合
List<B> bs = Lists.newArrayList();
for(int j=0;j<3;j++){
// 创建一个对象
B b = new B();
// 获取每一个对象 将对象中属性值获取 赋值给新的对象
b.setId(as.get(j).getId());
// 将新的对象引用放进集合中
bs.add(b);
}
}
流式编程:
bs = as.stream().map(B::new).collect(Collectors.toList());