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

Create a List<Y> from a List<X> using Stream()

我正在尝试从 List<X> 创建 List<Y>。 这是我的两个 类 :

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
   } 

对于 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);
});

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

有一个 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());