1

目前我有一个主屏幕,用户在其中存储他们本学期所学课程的标题,并且与每个课程相关的是他们的作业和这些课程的抽认卡。当用户长按主页上的某个项目时,我想删除该课程及其所有内容(这包括所有抽认卡和作业)。

不幸的是,我愚蠢地将我的数据存储在哈希表中,键为整数。当我从表中删除项目时,这会导致一些问题。键与主屏幕上的位置直接相关,当用户从中删除某些内容时,我似乎无法弄清楚如何重新调整哈希表。

我曾考虑过使用其他数据结构,例如 arrayList,但问题是用户可能并且很可能只有一组闪存卡或只有一个作业,并且它恰好位于主屏幕上的第 4 位。这意味着我必须先用 null 填充前 3 个位置,然后才能在第 4 个位置插入值。我绝对不认为我想要那个...

有任何想法吗?

4

2 回答 2

1

恐怕以您当前的实现,您将无法重新调整HashTable. 我建议您使用LinkedList屏幕上的项目并将迭代器存储到HashTable. 这样,您将能够有效地删除任何项目。

于 2013-02-18T12:35:15.600 回答
0

只需为所有实体(例如班级、用户和作业)分配唯一的 ID。使用这些唯一 ID(可能是整数)作为键以及在您需要引用实体的所有其他位置。不要使用实体的顺序作为标识符,因为它可能会在删除项目时甚至在重新排序项目时发生变化。

于 2013-02-18T12:36:48.460 回答