使用 Stream() 从 List<X> 创建一个 List<Y>

Smy*_*if3 1 java list arraylist java-stream

我正在尝试List<Y>List<X>. 这是我的两个类:

public class X {
    private String a;
    private String b;
    private String c;
    private String d;
    //Getters, setters
}

public class Y {
        private String a;
        private String b;
        //Getters, setters
   } 
Run Code Online (Sandbox Code Playgroud)

对于 forEach,它将类似于:

List<X> listX = getListX();
List<Y> listY = new ArrayList<>();
listX.forEach( x -> {
     Y object_y = new Y();
     object_y.set_a(x.get_a());
     object_y.set_b(x.get_b());
     listY.add(object_y);
});
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以使用 Stream() 执行相同的操作?

Alb*_*lia 5

有一个map功能:

List<X> listX = getListX();
List<Y> listY = listX.stream().map( x -> {
     Y object_y = new Y();
     object_y.set_a(x.get_a());
     object_y.set_b(x.get_b());
     return object_y;
}).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)