我必须通过将对象从一个数组列表添加到另一个数组列表来创建结果列表。这是我的有效代码。
private List<MyObject> getObjectList(List<OtherObject> objects) {
List<MyObject> resultList = new ArrayList<>();
for (int i = 0; i < objects.size(); i++) {
MyObject object = new MyObject()
object.setId(objects.get(i).getId());
object.setText(objects.get(i).getTextValue());
object.setUserId(objects.get(i).getUserName());
object.setCreatedDate(objects.get(i).getCreateDateTime());
resultList.add(object);
}
return resultList;
}
如何使用 lambda 表达式实现此目的?
最佳答案
以下是如何使用方法引用来完成此操作:
private List<MyObject> getObjectList(List<OtherObject> objects) {
return objects.stream()
.map(this::map)
.collect(Collectors.toList());
}
private MyObject map(OtherObject otherObject) {
MyObject object = new MyObject();
object.setId(otherObject.getId());
object.setText(otherObject.getTextValue());
object.setUserId(otherObject.getUserName());
object.setCreatedDate(otherObject.getCreateDateTime());
return object;
}
以下是使用流和 lambda 表达式实现此操作的方法:
private List<MyObject> getObjectList(List<OtherObject> objects) {
return objects.stream()
.map(obj -> {
MyObject object = new MyObject();
object.setId(obj.getId());
object.setText(obj.getTextValue());
object.setUserId(obj.getUserName());
object.setCreatedDate(obj.getCreateDateTime());
return object;
}).collect(Collectors.toList());
}
关于java - 如何使用 Lambda 表达式将一组值从 ArrayList 添加到另一个 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64211771/