【发布时间】:2011-09-25 01:06:08
【问题描述】:
我有一个 Hashmap,它将学生姓名存储为键,并将分数的 int 数组存储为值。我知道它正确地创建了 HashMap,但是当我试图返回一个我似乎无法获得的键的 int 数组时。
public int[] getQuizzes(String studentName)
{
int[] studentsQuizzes = quizMarks.get(studentName);
return studentsQuizzes;
}
它只是最终返回 null。我错过了什么,感谢您的帮助
这就是我创建哈希图的方式
quizMarks = new HashMap<String, int[]>();
public void addStudent(String studentName)
{
String formattedName = formatName(studentName);
int[] quizzes = new int[NUM_QUIZZES];
for (int i = 0; i < quizzes.length; i++)
{
quizzes[i] = MIN_GRADE;
}
quizMarks.put(formattedName, quizzes);
}
【问题讨论】:
-
我们可以看看你的代码来填充它吗?我觉得这没什么问题
-
如果你不能从中得到任何东西,你如何“知道它正确地创建了 hashmap”?
-
我猜你的 HashMap 中没有与 studentName 匹配的键,否则使用该键存储的值为 null。您可以通过 containsKey 判断哪个。
-
编写一个小型、独立的应用程序(控制台应用程序是一个不错的选择),演示插入和尝试检索数据。这样做的时候你很有可能会发现问题。否则,请在此处发布(简短!)程序。
-
您必须与学生姓名完全匹配。唯一的线索是你
put一个你称之为formattedName的东西,但是你的getQuizzes方法试图使用一个叫做studentName的东西作为键。也许你需要调用你的formatName方法。