android - 如何删除哈希表中的项目并相应地调整键?

标签 android hashtable

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

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

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

有什么想法吗?

最佳答案

恐怕您当前的实现无法重新调整HashTable 中的数字。我建议您对屏幕上的项目使用 LinkedList,并将迭代器存储到 HashTable 中该列表中的元素。这样您就可以高效地删除任何项目。

关于android - 如何删除哈希表中的项目并相应地调整键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14936390/

相关文章:

python - 哈希基和表大小如何影响哈希的时间复杂度?

java - Android应用程序传递数据时出错

java - 如何在纯 java gradle 模块中模拟 Android 的 productFlavors?

android - 永久删除文件 Android

c++ - "x bit hash function"是什么意思

c++ - 数据正确放入数组但打印数组时不存在

android - 第一次如何禁用 pulltorefresh 功能?

java - libGDX 动画打开和关闭

c++ - 如何创建哈希表

algorithm - 随机生成整数的通用哈希函数插入后如何进行查找?