簡體   English   中英

迭代集合,對每個項目執行操作並返回列表

[英]Iterate through collection, perform action on each item and return as List

有沒有辦法用java 8 Stream API做到這一點?

我需要將每個集合項轉換為其他類型(dto mapping)並將所有集合作為列表返回...

就像是

Collection<OriginObject> from = response.getContent();
DtoMapper dto = new DtoMapper();    
List<DestObject> to = from.stream().forEach(item -> dto.map(item)).collect(Collectors.toList());

public class DtoMapper {
    public DestObject map (OriginObject object) {
        return //conversion;
    }
}

先感謝您

更新#1:唯一的流對象是response.getContent()

我想你是在追求以下內容:

List<SomeObject> result = response.getContent()
                                  .stream()
                                  .map(dto::map)
                                  .collect(Collectors.toList());

// do something with result if you need.

請注意, forEach是終端操作。 如果要對每個對象執行某些操作(例如打印它),則應使用它。 如果您想繼續調用鏈,可能需要進一步過濾或收集到列表中,您應該使用map

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM