2 回答

TA贡献1801条经验 获得超16个赞
我问这个问题太蠢了。。。
map.get("RequestsServed") 会给我一个 LinkedTreeMap。我只需要将它解析为我选择的 HashMap 即可。
将 map.get("RequestsServed") 序列化为 json 并将结果值解析为 HashMap 将轻松为我提供所需的结果。
谢谢大家的宝贵时间。

TA贡献1776条经验 获得超12个赞
我写了一个虚拟类用于测试目的:
public class TempObject {
private String date;
private Double value;
public TempObject(String date, Double value) {
this.date = date;
this.value = value;
}
public String getDate() {
return date;
}
public Double getValue() {
return value;
}
}
这是您的解决方案:
// Initializing the Map (I'm using LinkedHashMap here for a reason)
Map<String, Object> map = new LinkedHashMap<>();
map.put("RequestsServed", new TempObject("2019-06-28T00:00:00Z", 0.0));
map.put("PullRequests", new TempObject("2019-06-28T00:00:00Z", 0.1));
// Using Collectors.toMap() with mergeFunction (to handle duplicate keys)
Map<String, Object> result = map.values().stream().map(object -> (TempObject) object).collect(Collectors.toMap(TempObject::getDate, TempObject::getValue, (existingValue, newValue) -> newValue));
System.out.println(result); // printing the value of result map: {2019-06-28T00:00:00Z=0.1}
您还可以将此 String 值解析为LocalDateTime.
添加回答
举报