我想以最短的方式初始化我的D的列表。现在我正在使用:
public List<SomeItemDto> itemsToDto(List<SomeItem> items) {
List<SomeItemDto> itemsDto = new ArrayList<SomeItemDto>();
for (SomeItem item : items) {
itemsDto.add(itemToDto(item));
}
return itemsDto;
}
有什么方法可以使其成为单线的吗?
答案 0 :(得分:5)
您可以使用stream
并进一步map
ping为:
return items.stream()
.map(item -> itemToDto(item)) // map SomeItem to SomeItemDto
.collect(Collectors.toList());
答案 1 :(得分:3)
您可以使用map
,它基本上将功能应用于元素
List<SomeItemDto> itemsDto = items.stream().map(item -> itemToDto(item))
.collect(Collectors.toList())
答案 2 :(得分:2)
如果您愿意使用第三方库,则可以将ListIterate
中的Eclipse Collections实用程序与任何List
一起使用。
List<SomeItemDto> itemsDto = ListIterate.collect(items, this::itemToDto);
如果项目是Eclipse Collections中的MutableList
,则可以按如下所示直接在列表上使用API:
List<SomeItemDto> itemsDto = items.collect(this::itemToDto);
注意:我是Eclipse Collections的提交者。