使用stream()从列表< x>创建一个列表< y>

nkcskrwz  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(473)

此问题已在此处找到答案

将一种元素类型的列表转换为另一种类型的列表(11个答案)
两小时前关门了。
我正在尝试创建一个 List<Y>List<X> . 这是我的两门课:

  1. public class X {
  2. private String a;
  3. private String b;
  4. private String c;
  5. private String d;
  6. //Getters, setters
  7. }
  8. public class Y {
  9. private String a;
  10. private String b;
  11. //Getters, setters
  12. }

对于foreach,它将类似于:

  1. List<X> listX = getListX();
  2. List<Y> listY = new ArrayList<>();
  3. listX.forEach( x -> {
  4. Y object_y = new Y();
  5. object_y.set_a(x.get_a());
  6. object_y.set_b(x.get_b());
  7. listY.add(object_y);
  8. });

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

ztmd8pv5

ztmd8pv51#

有一个 map 功能:

  1. List<X> listX = getListX();
  2. List<Y> listY = listX.stream().map( x -> {
  3. Y object_y = new Y();
  4. object_y.set_a(x.get_a());
  5. object_y.set_b(x.get_b());
  6. return object_y;
  7. }).collect(Collectors.toList());

相关问题