JavaFX - 多维hashmap被覆盖

时间:2016-04-30 22:01:41

标签: java javafx hashmap overwrite

我是新来的,不要在开始时杀了我。 我的代码应该创建学生并计算他的毕业平均分。 在尝试添加另一名学生之前,一切都还可以。 来自主地图的关键字不同,但来自innerMap的主题的平均值被覆盖。

如果我创造的学生很少,那么他们每个人都有不同的名字(主要)但是平均水平相同(最近我加了)。

我正在以这种方式创建HashMaps:

Map<String, HashMap<String, Double>> mainMap = new HashMap<String, HashMap<String, Double>>(); 
Map<String, Double> innerMap = new HashMap<String, Double>();

我用这个地图创建了我的类的实例来获取静态访问:

private static AvgLists instance = new AvgLists();

public static mapClass getInstance() {
    return instance;
}

在另一个类中,我创建了在map中添加值的方法:

innerMap.put(subject, grade);
 mainMap.put(key, innerMap);

mainMap的键是带有姓名和学生姓氏的字符串。

另外,我为我的语言道歉。 谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

很难从你的代码中分辨出来,但由于 @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { sharedPreference.removeFavorite(cartActivity.this, favorites.get(position)); favorites.remove(position); refreshDisplay(); Toast.makeText(cartActivity.this, "Success Remove",Toast.LENGTH_SHORT).show(); return true; } 似乎都是字段,所以你可能只为所有学生使用一张地图。您需要为每个学生创建新地图:

Map