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;