有一个List<MyObject>,它的对象是创建将添加到具有不同元素的另一个List的对象所必需的:List<OtherObject>

我就是这样

List<MyObject> myList = returnsList();
List<OtherObj> emptyList = new ArrayList();

for(MyObject obj: myList) {
    OtherObj oo = new OtherObj();
    oo.setUserName(obj.getName());
    oo.setUserAge(obj.getMaxAge());
    emptyList.add(oo);
}

我正在寻找lamdba表达式来做完全相同的事情。

最佳答案

如果定义构造函数OtherObj(String name, Integer maxAge),则可以使用以下java8样式:

myList.stream()
    .map(obj -> new OtherObj(obj.getName(), obj.getMaxAge()))
    .collect(Collectors.toList());

这会将列表myList中的所有对象映射到OtherObj,并将其收集到包含这些对象的新List中。

10-06 16:15