我有一个温度类
class Temperature {
double minTemp;
double maxTemp;
String city;
String country;
}
我还有另一个类维持着温度集合
class Temperatures {
List<Temperature> temperatures;
}
我想使用流按countryName将温度分组。
我想要的是
public Map<String, Temperatures> temperaturesByCountry()
但是我无法使用流获取“温度”作为 map 值,我得到的是“温度列表”。
我的groupingBy实现如下
Map<String, List<Temperature>> result = this.getTemperatures()
.stream()
.collect(Collectors.groupingBy(Temperature::getCountry));
我想获取
Map<String, Temperatures>
而不是Map<String, List<Temperature>>
我怎样才能做到这一点?
最佳答案
假设您有构造函数Temperatures(List<Temperature> temperatures)
这应该可以解决问题:
Map<String, Temperatures> result =
this.getTemperatures()
.stream()
.collect(groupingBy(Temperature::getCountry,
collectingAndThen(toList(), Temperatures::new)));