一度のプロジェクトで使用するlambda式を記す


場面:店舗販売ランキング統計、レポートマイクロサービスがリストに戻る
public class ShopSaleDto implements Serializable{

    private Integer shopId;
    private Integer totalSaleNum;

需要:店舗詳細情報及び販売量を返却する必要がある
手順1:ListのshopIdコレクションを取り出して店舗マイクロサービスを呼び出して店舗リストを検索し、閉じた店舗をフィルタリング(lambda式は簡単に省略)した結果、以下のようになる
public class ShopInfo implements Serializable {	
	/*
	  
	 */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@ApiModelProperty(value = " ")
	@Column(name = "id")
	private Integer id;

ビジョン:ShopSaleDtoとShopInfoが一致する同じshopIdを新しいShopInfoDtoオブジェクト(店舗情報と販売情報を含む)に組み立ててフロントエンドに戻す
public class ShopInfoDto implements Serializable,Comparable{

    private Integer shopId;

    private Integer totalSaleNum;

    /** **/
    private String shopName;

    /** **/
    private String shopAvatar;

コード1:
// List map,key (shop_id)
Map dtoMap = list.stream().collect(Collectors.toMap(d -> d.getShopId(), d -> d));

コード2:
// ShopInfoDto
 infoList = finalShop.stream().map(s -> {
    return toShopInfo(dtoMap.get(s.getId()), s);
 }).collect(Collectors.toList());