10 java grouping hashmap java-8 java-stream
我有温度等级
class Temperature {
double minTemp;
double maxTemp;
String city;
String country;
}
Run Code Online (Sandbox Code Playgroud)
我有另一个维护温度集合的类
class Temperatures {
List<Temperature> temperatures;
}
Run Code Online (Sandbox Code Playgroud)
我想使用streams对countryName进行分组.
我想要的是
public Map<String, Temperatures> temperaturesByCountry()
Run Code Online (Sandbox Code Playgroud)
但我无法使用流将温度作为地图值,我得到的是温度列表.
我的分组实现如下
Map<String, List<Temperature>> result = this.getTemperatures()
.stream()
.collect(Collectors.groupingBy(Temperature::getCountry));
Run Code Online (Sandbox Code Playgroud)
我想要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)));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
695 次 |
| 最近记录: |