java - 如何使用 Lambda 表达式将一组值从 ArrayList 添加到另一个 ArrayList

标签 java

我必须通过将对象从一个数组列表添加到另一个数组列表来创建结果列表。这是我的有效代码。

    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/

相关文章:

java - 使用 PDFBox 从 Java 编辑 PDF

java - 如何读取Excel单元格值中的下拉列表项?

java - 简单的二维数组java游戏

java - LWJGL 和 Slick2D 64 位

java - 无法将 ProgressDrawable 置于进度条的背景上

java - 有没有办法用 Java 中已经包含的值初始化 SortedMap<Integer, String> ?

java - 分割字符串而不丢失分割字符

java - LeanFT 项目中的 Jar 文件 - 类 Not Acceptable

java - Gson无法在Android(Java)中序列化LocalDateTime数据

Java Swing Die绘图