【问题标题】:Create a List<Y> from a List<X> using Stream() [duplicate]使用 Stream() 从 List<X> 创建 List<Y> [重复]
【发布时间】:2021-09-18 10:59:02
【问题描述】:

我正在尝试从 List&lt;X&gt; 创建一个 List&lt;Y&gt;。 这是我的两门课:

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() 执行相同的操作吗?

【问题讨论】:

    标签: java list arraylist java-stream


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2012-02-20
      相关资源
      最近更新 更多