[英]Java 8: Stream a list and map to another list based on different filters
[英]Transform a list in another with stream map java 8
我想使用stream和Java 8中的另一個選項基於基於FieldError的列表創建一個ErroDto列表。
fieldErrors.stream()
.forEach(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage())));
我在下面嘗試這樣,但是我認為它是錯誤的,因為我正在修改地圖中的第二個列表:
fieldErrors.stream()
.map(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage())));
然后,我想映射並收集為列表。
map
應僅將每個FieldError
實例轉換為ErroDto
實例。
使用collect
將所有ErroDto
實例收集到一個List
:
List<ErroDto> errosDto =
fieldErrors.stream()
.map(e -> new ErroDto(e.getField(), e.getDefaultMessage()))
.collect(Collectors.toList());
傳遞給map()
方法的lambda表達式將使用輸入對象並返回輸出對象。 您不應將其添加到map()
方法本身內部的列表中。 將來自map()
的流收集到List<ErroDto>
:
List<ErroDto> errosDto = fieldErrors.stream()
.map(e -> new ErroDto(e.getField(), e.getDefaultMessage()))
.collect(Collectors.toList());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.