1

我要做的基本上是删除哈希表中的一个位置,然后将该哈希表保存到用户手机上的文件中。哈希表只有字符串,所以不涉及序列化。哈希表的布局如下:

键->整数

值->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 的顺序删除位置,删除工作非常好,但是如果我尝试删除第一个位置,然后尝试删除第二个位置,它会给我一个空指针,因为它正在尝试访问第一名。有什么建议么?

4

1 回答 1

1
ArrayList temp = allAssignments.get(i);
if(temp !null){
...
}

这会检查 null。

类似的问题

于 2012-10-28T04:13:16.133 回答