在流中使用嵌套结构中的吸气剂

时间:2019-05-13 11:08:28

标签: list data-structures java-8 maps java-stream

我正在将List<City>转换为Map<CityType, Set<City>>

其中的城市有CityIdentifier, State, Latitude等字段。

CityIdentifier中有一个cityNamecityType

对于上述转换,对于Collectors.groupingBy,我需要一个类似City::getCityType的函数。我可以使用CityIdentifier中的吸气剂,例如City::getCityIdentifier.getCityType吗?

1 个答案:

答案 0 :(得分:2)

在此示例中,您不能使用方法引用。

改为使用lambda表达式:

city -> city.getCityIdentifier().getCityType()

完整的管道:

Map<CityType, Set<City>> map =
    list.stream()
        .collect(Collectors.groupingBy(city -> city.getCityIdentifier().getCityType(),
                                       Collectors.toSet()));