Java Stream GroupingBy collect在自定义对象中
我有体温课
class Temperature {
double minTemp;
double maxTemp;
String city;
String country;
}
我还有一门课,可以收集温度
class Temperatures {
List<Temperature> temperatures;
}
我想用溪流按countryName对温度进行分组
我想要的是
public Map<String, Temperatures> temperaturesByCountry()
但我不能用stream得到温度作为地图值,我得到的是温度列表
我的groupingBy实现如下
Map<String, List<Temperature>> result = this.getTemperatures()
.stream()
.collect(Collectors.groupingBy(Temperature::getCountry));
我想得到Map<String, Temperatures>
而不是Map<String, List<Temperature>>
我怎样才能做到这一点
# 1 楼答案
假设你有构造函数
Temperatures(List<Temperature> temperatures)
这应该可以做到:# 2 楼答案
或者,您可以将
Map.forEach
与现有信息组合为: