使用流映射java 8转换另一个列表中的列表

使用流映射java 8转换另一个列表中的列表,java,Java,我想使用stream和Java8中的另一个选项,基于FieldError列表创建一个ErroDto列表。我在forEach上有这个,但我想在stream和map上: fieldErrors.stream() .forEach(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage()))); 我尝试如下,但我认为这是错误的,因为我正在修改地图中的第二个列表: fieldError

我想使用stream和Java8中的另一个选项,基于FieldError列表创建一个ErroDto列表。我在forEach上有这个,但我想在stream和map上:

fieldErrors.stream()
                   .forEach(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage())));
我尝试如下,但我认为这是错误的,因为我正在修改地图中的第二个列表:

fieldErrors.stream()
               .map(e -> errosDto.add(new ErroDto(e.getField(), e.getDefaultMessage())));
然后我想映射并收集为一个列表。

映射应该只将每个FieldError实例转换为一个ErrorTo实例

使用“收集”将所有ErroDto实例收集到一个列表中:


传递给map方法的lambda表达式接受输入对象并返回输出对象。您不应该将其添加到map方法本身内部的列表中。将来自映射的流收集到列表中:

…stream.map e->新错误到…收集列表
List<ErroDto> errosDto =
    fieldErrors.stream()
               .map(e -> new ErroDto(e.getField(), e.getDefaultMessage()))
               .collect(Collectors.toList());
List<ErroDto> errosDto = fieldErrors.stream()
    .map(e -> new ErroDto(e.getField(), e.getDefaultMessage()))
    .collect(Collectors.toList());