关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
上个月关门了。
改进这个问题
我想更改hashmap中的键。我正在从另一个hashmap制作一个hashmap。
我基本上得到一个身份证,并返回一个名字。
所以基本上我得到的是:
'BOS': 300
但我想得到:
'Boston':300
private Map<MetricName, Map<String, Integer>> getMetric(String regionId, Map<String, String> locationMap){
Map<MetricName, Map<String, Integer>> metricTargetsMap = analyzeMetaService
.getMetricTargetsForRegion(regionId);
Map<MetricName, Map<String, Integer>> metricTargetsMapModified = new HashMap<MetricName, Map<String, Integer>>();
metricTargetsMap.forEach((metricName,targetMap)-> {
HashMap<String, Integer> modifiedMap = new HashMap<String, Integer>();
targetMap.forEach((location, targetValue) -> modifiedMap.put(locationMap.get(location), targetValue));
metricTargetsMapModified.put(metricName, modifiedMap);
}
);
return metricTargetsMapModified;
}
2条答案
按热度按时间zzlelutf1#
你不能换钥匙。您可以(a)使用旧密钥删除项目,并(b)在新密钥下插入项目。
或者,如果你在做一张新Map,基本上是
在封面下,按键上的一些功能被用作在Map中定位条目的机制。因此,如果您能够更改密钥,“some函数”将不再将您带到应该找到条目的位置。
mwyxok5s2#
这可以通过重新Map现有Map中的键并重新收集新Map来实现: