当前位置: 首页 > 知识库问答 >
问题:

如何从lambda表达式收集列表[重复]

司徒宏远
2023-03-14

我在写一个方法,它将返回一个区域数据列表,我在做以下方式,但得到错误

@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=CountriesSo.Stream().Map(C->I18NFacade.GetRegionsForCountryIso(c)).Collect(Collectors.ToList());

函数i18nfacade.getRegionsForCountryIso(c)返回了一个区域数据列表,我想将这些列表合并为一个列表。我试着和lambda在一起,但没能做到。

共有1个答案

狄冠宇
2023-03-14

您需要将flatMap与Stream一起使用。regiondata=CountriesISO.Stream().FlatMap(C->I18nFacade.GetRegionsForCountryISO(c).Stream()).Collect(Collectors.ToList());

 类似资料:
  • (译注:目前支持lambda的gcc编译器版本为4.5,其它详细的编译器对于C++11新特性的支持请参考http://wiki.apache.org/stdcxx/C%2B%2B0xCompilerSupport) Lambda表达式是一种描述函数对象的机制,它的主要应用是描述某些具有简单行为的函数(译注:Lambda表达式也可以称为匿名函数,具有复杂行为的函数可以采用命名函数对象,当然,何谓复杂

  • 我有包含项目数组的类存储。 每个项目(类项目)有不同的体积,我正在添加项目到商店。假设我有20个项目,我把10个添加到2或3个不同的商店,我必须根据这些项目的数量在商店中排序。

  • 如何在不包含连续子字符串baa的字母表{a,b,c}上表达正则表达式?

  • Lambda表达式在Java 8中引入,并被吹捧为Java 8的最大特性.Lambda表达式有助于函数式编程,并简化了很多开发。 语法 (Syntax) lambda表达式的特征在于以下语法。 parameter -> expression body 以下是lambda表达式的重要特征。 Optional type declaration - 无需声明参数类型。 编译器可以从参数的值推断出相同的

  • 我正在尝试在Java中使用Lambda表达式来理解以下方法参考代码: 我的问题是,为什么函数sameTemp只有一个参数?接口声明它必须有2个参数,所以对我来说没有意义。也许hTemp实例变量对这两个都足够了?我从Java完整参考书中获得了这一点,作者在那里解释了这一点: 块引用 在程序中,请注意HighTemp有两个实例方法:

  • 问题内容: 我有一个对象列表。首先,我需要按类型对其进行排序。比按faceValue。最后,总结所有数量: 结果列表必须仅包含3个新硬币对象: 怎么只用一个lambda表达式写出来呢? 问题答案: 您可以使用as 解决: 或进一步复杂的一个班轮分组,总和为: