单行从另一个列表初始化列表

Ser*_*ric 6 java initialization arraylist java-8 java-stream

我想以最短的方式初始化我的Dto列表.现在我正在使用:

public List<SomeItemDto> itemsToDto(List<SomeItem> items) {
    List<SomeItemDto> itemsDto = new ArrayList<SomeItemDto>();
    for (SomeItem item : items) {
        itemsDto.add(itemToDto(item));
    }
    return itemsDto;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让它成为一个单行程?

Nam*_*man 5

您可以使用stream并进一步mapping为:

return items.stream()
            .map(item -> itemToDto(item)) // map SomeItem to SomeItemDto
            .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)