Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 数组如何在内存方面工作?_Arrays_Indexing_Language Agnostic - Fatal编程技术网

Arrays 数组如何在内存方面工作?

Arrays 数组如何在内存方面工作?,arrays,indexing,language-agnostic,Arrays,Indexing,Language Agnostic,所以我看到人们在数组中循环搜索值,甚至是唯一的值 例如,当他们想知道数组中是否存在字符串时: for(i;i<=count(theArray);i++) { if(theArray[i]=="textImSearching") {theBoolean = true;} } 正如ryanyuyu指出的,还有.NET字典对象。 我也使用它而不是List对象来使用键更快地访问值 对不起,我的英语很差,请提前感谢。一般来说,数组是一块内存,其中包含背靠背的值。例如,如果您的数组只包含一种

所以我看到人们在数组中循环搜索值,甚至是唯一的值

例如,当他们想知道数组中是否存在字符串时:

for(i;i<=count(theArray);i++) {
    if(theArray[i]=="textImSearching") {theBoolean = true;}
}
正如ryanyuyu指出的,还有.NET字典对象。 我也使用它而不是List对象来使用键更快地访问值


对不起,我的英语很差,请提前感谢。

一般来说,数组是一块内存,其中包含背靠背的值。例如,如果您的数组只包含一种数据类型,并且该类型是定义的固定长度,如
int[]
,则内存将包含背靠背压缩的整数。在数组中建立索引(
arr[i]
)非常简单,只需获取
arr
的起始内存位置,然后向其中添加
i*len(int)
,即可找到所需的特定值。这也是数组通常为零索引的原因

当阵列允许存储异构数据集合或可变长度数据时,这就变得更加复杂。不过,以某种方式,数组索引只指向数据的起始内存位置


这显然意味着您基本上在内存中存储了大量二进制数据。如果您想在其中找到任何一个特定的数据段,您别无选择,只能遍历所有数据段。如果您需要直接访问某个工件,则需要指向其在内存中位置的直接指针。显然,如果你知道数组索引,那就是你的指针。该索引可以是字符串或其他数据类型,在这种情况下,数组本身通常被称为字典、hashmap、关联数组或其他东西,具体取决于实现语言。它们通常被实现为hashmap,其中密钥被散列并与指向实际数据的内存地址相关联。这允许使用有意义的索引值快速直接查找内存位置。

这是什么语言?语法因语言而异,但数组通常为数组中的项目分配一块内存。通过数组循环,程序可以通过index@leppie没有,我只是想让任何人都能理解。这可能只与javascript有关。数组在其他语言(如C#)中要严格得多。例如,对于类似于
theBoolean=theArray[“textImSearching”]的语法=无效
要在C#中工作,您必须使用
字典
,因为数组不能通过索引以外的键进行索引。谢谢,我现在就知道了。
theBoolean = theArray["textImSearching"]!=null;