数组中键和索引之间的差异



我对术语indexkeykey-value pair&关于TCL中的阵列的CCD_ 4,或者说一般的任何其它编程语言。

我知道我们对非关联数组使用index,对关联数组使用键,但不明白为什么。

有人能帮我理解这些术语的确切含义(它们之间的区别)和用法吗。

感谢

index通常是数字(它是一个整数,从零开始,增加到元素数减一)。它通过其在数组中的序号位置来标识感兴趣的元素。

key通常是一个字符串或对象。它标识数组"中的一个元素;按名称">

element只是数组中的一个项。

键用于";关联阵列";因为你是";关联";具有值的键。key-value pair只是一个包含键和与该键关联的值的对象。

(高级)

如何使用键和索引会影响性能。如果一个";相联阵列";用哈希表实现,其性能为O(1)。如果用二进制树实现,它就是O(n log n)

通过数组的索引访问数组总是O(1),因为找到正确的元素本质上是一个算术问题。如果既没有索引也没有键,则在数组中查找项是O(n)

术语可能有点令人困惑。Tcl所称的array始终是一个关联数组(实现为哈希表),即使键恰好是数字。Tcllist更像其他语言的数组。使用lindex l n读取列表l中位置n处的值,其中n是数字(但也支持其他一些形式,如end)。正如Robert Harvey所指出的,这是一个持续的时间运算。

最新更新