只查看现有变量

Only looking to existing variables

我要问的问题会非常具体。

假设我们有一个 array/hash table,它有一定的大小。 并不是这个 array/table 中的每个 space 都被使用。 例如,假设我们有一个名为 "arr" 的整数数组,其大小为 150.

arr[3] = 5;
arr[16] = 22;
arr[127] = 3;

除了这三个,所有其他0到150之间的space都是空的。 现在假设我们要打印此数组中的每个数字(不为空)。

我们可以做一个从 0 到 150 的循环,检查数组 space 是否为空,如果不是则打印它。 但这意味着仅打印 3 个变量我们需要进行 150 次检查。

我想知道是否可以直接打印这些数字而不查看整个数组。 我的意思是,不是检查空值,而是直接从一个非空变量转到另一个非空变量。

我的问题在哈希 table 中也相同,假设我们没有为 0 和哈希 table 大小之间的每个数字创建 table。是否可以只查看现有的 table 而不是每次都检查 table 是否存在。

即使用数组或散列 table 做我所说的是不可能的,是否有任何方法可以直接从一个变量转到下一个变量。 (我搜索的不是链表)

数组是固定大小——连续的内存数据结构。没有办法知道哪个元素被分配了,哪个没有(不单独记住分配的索引或迭代)。

哈希表(或字典)-- 不是连续的内存结构。在我看来,只有 3 个条目应该(理想情况下)存储在 HashTable 中。您根本不会存储其他 (Null) 项目。您可以对列表执行相同的操作。

如果出于某种原因,您将 0 到 150 之间的所有内容添加到 HashTable,除了这 3 个之外,所有的值都为 Null。同样,您没有任何更简单的方法,只能通过迭代来解决这个问题。