优雅是的使用Lambda .map函数

  1. 代码展示
package com.jd.pda.gateway.spi.impl.service.stock;


import com.alibaba.fastjson.JSON;
import lombok.Data;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;

public class Test {
    public static void main(String[] args) {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //封装赋值
        LocationDto dto01 = new LocationDto();
        dto01.setUpdateBy("蝎子莱莱");
        dto01.setUpdateDate(dateFormat.format(new Date()));
        dto01.setVersion(4);

        LocationDto dto02 = new LocationDto();
        dto02.setUpdateBy("蜘蛛侦探");
        dto02.setUpdateDate(dateFormat.format(new Date()));
        dto02.setVersion(5);

        //放入至集合
        List<LocationDto> list = new ArrayList<>();
        Collections.addAll(list, dto01, dto02);

        //装载至Map集合, 机器人版本为Key, JSON串为Value
        Map<Integer, LocationVo> map = new HashMap<>();

        //调用方法转换
        convert2LocationVo(list).forEach(each -> map.put(each.getVersion(), each));
        //遍历
        map.forEach((key, value) -> System.out.println("key:" + key + "; value" + JSON.toJSON(value)));
        // TODO: key:4; value{"updateDate":"2021-06-25 15:39:25","updateBy":"蝎子莱莱","version":4}
        // TODO: key:5; value{"updateDate":"2021-06-25 15:39:25","updateBy":"蜘蛛侦探","version":5}
    }

    private static List<LocationVo> convert2LocationVo(List<LocationDto> locationDtoList) {
        if (null == locationDtoList) {
            return null;
        }
        return locationDtoList.stream().map(item -> {
            LocationVo locationVo = new LocationVo();
            locationVo.setUpdateBy(item.getUpdateBy());
            locationVo.setUpdateDate(item.getUpdateDate());
            locationVo.setVersion(item.getVersion());
            return locationVo;
        }).collect(Collectors.toList());
    }
}


@Data
class LocationDto {
    private String UpdateBy;
    private String UpdateDate;
    private Integer Version;
}

@Data
class LocationVo {
    private String UpdateBy;
    private String UpdateDate;
    private Integer Version;
}

原文地址:https://www.cnblogs.com/Twittery/p/14931329.html