c# - 只寻找现有变量

标签 c# c++ arrays hashtable

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

假设我们有一个具有一定大小的数组/哈希表。
并没有使用此数组/表中的每个空格。
例如,假设我们有一个名为“arr”的整数数组,其大小为150。

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

除了这三个以外,其他所有介于0和150之间的空格均为空。
现在让我们说我们要打印此数组中的每个数字(不为null)。

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

我想知道的是,是否有可能直接打印此数字而无需查看整个数组。
我的意思是直接检查从一个非空变量到另一个非空变量,而不是检查空值。

我的问题也与哈希表相同,可以说我们没有为0到哈希表大小之间的每个数字创建表。是否可以仅查看现有表而不是检查表(如果表存在或不存在)。

即使它不可能执行我所说的数组或哈希表,也有任何方法可以直接从一个变量转到下一个变量。 (链接列表不是我要搜索的列表)

最佳答案

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

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

如果出于某种原因,您将0到150的所有内容添加到HashTable中,则除3之外的所有值均为Null。同样,您没有其他任何更简单的方法,只有迭代才能解决。

关于c# - 只寻找现有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49641681/

相关文章:

c# - 如何在 Entity Framework Core 中实现环境事务?

c# - 运行时调试不起作用。

php - 在源代码中查找 PHP 函数?

c++ - glGetTexImage 读取过多纹理格式为 GL_ALPHA 的数据

c++ - 如何避免使用模板类型的派生类在多态性中进行动态转换

php - 使用 PHP 将数组数据值插入 MySQL 数据库表

c# - 页面提交后,GET 方法在 POST 方法之前执行?

c# - 更新 GAC dll

python - Numpy - 对数组中的代表节点网络的数字进行排序

javascript - 基于另一个数组并组合过滤数组