我要做的基本上是删除哈希表中的一个位置,然后将该哈希表保存到用户手机上的文件中。哈希表只有字符串,所以不涉及序列化。哈希表的布局如下:
键->整数
值->ArrayList()
在arrayList 中只是字符串值。
我遇到的问题是,当我删除 arrayList 中的一个位置时,如果它是该 arrayList 中的最后一个值,这意味着,哈希表中的该位置已变为空。出于某种原因,我无法检查这种情况......我尝试了各种功能,但似乎都没有。这是我从哈希表中删除值的代码
// delete the assignment from the public list
for (int i = 0; i < allAssignments.size(); i++) {
//Here is where I get a null pointer-vvv
for (int p = 0; p < allAssignments.get(i).size(); p++) {
if (allAssignments.get(i).get(p).getTitle().equals(title)
&& allAssignments.get(i).get(p)
.getDate_due().equals(Date)) {
allAssignments.get(i).remove(p);
}
}
}
如果我按 4-3-2-1 的顺序删除位置,删除工作非常好,但是如果我尝试删除第一个位置,然后尝试删除第二个位置,它会给我一个空指针,因为它正在尝试访问第一名。有什么建议么?