[英]How to convert list of object to another list object using streams?
The below code snippet, has been implemented without lambda expressions. 下面的代码片段已经实现,没有lambda表达式。
How to implement the same functionality using lambda expressions? 如何使用lambda表达式实现相同的功能?
public class Java8EmpTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Emp> empInList = Arrays.asList(new Emp(1, 100), new Emp(2, 200), new Emp(3, 300));
List<Emp> afterSalayHikeInJava7 = new ArrayList<>();
// old way
for (Emp emp : empInList) {
afterSalayHikeInJava7.add(new Emp(emp.getId(), emp.getSalary() * 100));
}
afterSalayHikeInJava7.stream()
.forEach(s -> System.out.println("Id :" + s.getId() + " Salary :" + s.getSalary()));
}
}
class Emp {
private int id;
private int salary;
public int getId() {
return id;
}
Emp(int id, int salary) {
this.id = id;
this.salary = salary;
}
public int getSalary() {
return salary;
}
}
Simple use map()
method in stream api and collect results: 在stream api中简单使用
map()
方法并收集结果:
List<Emp> employe = Arrays.asList(new Emp(1, 100), new Emp(2, 200), new Emp(3, 300));
List<Emp> employeRise = employe.stream()
.map(emp -> new Emp(emp.getId(), emp.getSalary * 100))
.collect(Collectors.toList());
employeRise.stream()
.forEach(s -> System.out.println("Id :" + s.getId() + " Salary :" + s.getSalary()));
map()
each Emp
of the input List
to a new Emp
and then collect()
to a List
: map()
输入List
每个Emp
到一个新的Emp
然后collect()
到一个List
:
List<Emp> afterSalayHike =
empInList.stream()
.map(emp->new Emp(emp.getId(), emp.getSalary() * 100))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.