我想知道如何获得一张新地图,这是我的反转地图? 我的实际地图看起来像这样:
centralMap = new HashMap<String, Map<String, String>>();
nestedMap = new HashMap<String, String>();
nestedMap刚刚在put方法中创建..并且放置一个元素我在main方法中使用以下内容:
TrueStringMap2D testmap = new TrueStringMap;
testmap.put("Mickey Mouse","Mathematics","1.0");
testmap.put("Mickey Mous","Physics","1.3");
testmap.put("Minnie","Chemistry","2.3");
......
现在我想通过一个名为“flipped()”的方法来反转地图 我想将嵌套地图的键更改为中心地图的键,反之亦然..所以每个“主题”(如数学,物理,...)将有一个嵌套的学生和成绩..我怎么办是什么?
我不允许在我的TrueString2D中创建类..我只需要复制一个列表中的centralMap的键,以及另一个List中的嵌套Map的那些键,然后创建一个新的地图HashMap&gt;(); (与我的centralMap相同)并将新创建的地图(例如newCentralMap)中嵌套地图的旧键列表复制为键,作为值,我将复制newNestedMap中centralMap的旧键和值newNestedMap的内容与旧地图上的相同..但我不知道该怎么做,如果我可以复制地图中的列表:S
非常感谢
答案 0 :(得分:2)
使用不同的东西存储您的物品:
答案 1 :(得分:0)
我不会为此使用地图。我只想使用Collection<PersonGrade>
。
class PersonGrade {
String name;
String subject;
Double grade;
}
然后,当您想要生成关于“所有主题上的所有成绩的米老鼠”的报告时,迭代收集并获取符合该标准的对象。 我知道当你处理大量数据时,这可能会有点慢。但我真的试一试。
答案 2 :(得分:0)
为什么不使用HashMap<String, Map<String, String>>()
代替TrueStringMap2D
import java.util.HashMap;
import java.util.Map;
public class Flip {
public static Map <String, Map<String, String>> flip(Map <String, Map<String, String>> map){
Map <String, Map<String, String>> result = new HashMap<String, Map<String, String>>();
for (String key : map.keySet()){
for (String key2 : map.get(key).keySet()){
if (!result.containsKey(key2)){
result.put(key2, new HashMap<String, String>());
}
result.get(key2).put(key, map.get(key).get(key2));
}
}
return result;
}
/**
* @param args
*/
public static void main(String[] args) {
Map <String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
map.put("Mickey", new HashMap<String, String>());
map.get("Mickey").put("Physics", "1.1");
map.get("Mickey").put("Maths", "1.2");
map.put("Minnie", new HashMap<String, String>());
map.get("Minnie").put("Physics", "1.1");
map.get("Minnie").put("Chemistry", "1.3");
System.out.println(map);
System.out.println(flip(map));
}
}
输出
{Minnie={Physics=1.1, Chemistry=1.3}, Mickey={Maths=1.2, Physics=1.1}}
{Maths={Mickey=1.2}, Physics={Minnie=1.1, Mickey=1.1}, Chemistry={Minnie=1.3}}