我有一个名为AB
的类:
class AB{
private final String a;
private final String b;
public AB(String a, String b) {
this.a = a;
this.b = b;
}
public String getB() {
return b;
}
public String getA() {
return a;
}
@Override
public boolean equals(Object o) {...}
@Override
public int hashCode() {...}
}
现在,我创建一个名为
Map<AB,Float> mapWithData
的映射表来计算服务器响应中a
服务名称和b
服务端口在stats.log中出现的次数。我们将它们全部加起来存入
servicesNamePort.merge(new AB(...,...), 1.0f, Float::sum)
这个映射表中。如何从
Map<AB,Float> mapWithData
创建一个映射表,其中键是b,值是以a为键,float为值的映射表,即Map<String **(b)**, Map<String**(a)**,Float>>
呢?我尝试使用
Collectors.groupingBy
,但收到了这个回答:Map<String, List<Map.Entry<AB, Float>>> collect = mapWithData.entrySet()
.stream()
.collect(Collectors.groupingBy(abEntry-> abEntry.getKey().getB()));
感谢您的任何帮助。