此问题已在此处有答案:
How can I turn a List of Lists into a List in Java 8?(12个回答)
6年前关闭。
我写了一个方法,将返回一个列表的区域数据,我这样做的方式,但得到错误
@Override
public List<RegionData> getAllRegionsForDeliveryCountries()
{
final List<RegionData> regionData = new ArrayList<>();
final List<String> countriesIso = getCountryService().getDeliveryCountriesIso();
regionData = countriesIso.stream().map(c->i18nFacade.getRegionsForCountryIso(c)).collect(Collectors.toList());
return regionData;
}
我正在获取错误
type mismatch: cannot convert from List<List<RegionData>> to List<RegionData>
在线regionData = countriesIso.stream().map(c->i18nFacade.getRegionsForCountryIso(c)).collect(Collectors.toList());
函数i18nFacade.getRegionsForCountryIso(c)返回一个区域数据列表,我想将这些列表合并为一个列表。我尝试了lambda,但没有成功。
3条答案
按热度按时间gkn4icbw1#
你需要在stream中使用flatMap。
j2cgzkjk2#
使用
flatMap
:返回一个流,该流由将此流的每个元素替换为Map流的内容的结果组成,该Map流是通过将提供的Map函数应用于每个元素而生成的。
cwxwcias3#
您希望使用
Stream#flatMap
而不是Stream#map
。