Here它说:
数组很有用,主要是因为可以计算元素索引 在运行时。除此之外,此功能允许单一 迭代语句来处理任意数组的元素。 因此,需要数组数据结构的元素 具有相同的大小,应使用相同的数据表示。
现代语言仍然如此吗?
例如,Java,你可以拥有一个对象或字符串数组,对吧?每个对象或字符串可以具有不同的长度。我是否误解了上述引用,或者像Java这样的语言以不同方式实现Array?怎么样?
答案 0 :(得分:1)
在java中,除了基元之外的所有类型都是引用类型,这意味着它们是指向由JVM
操纵的某个内存位置的指针。
但主要有两种类型的编程语言,fixed-typed
,如Java
和C++
和 dynamically-typed
,如python
和PHP
。在fixed-typed
种语言中,您的数组应包含相同类型,无论String
,Object
还是......
但是在dynamically-typed
中,有一些抽象,你可以在数组中有不同的数据类型(虽然我不知道实际的实现)。
答案 1 :(得分:1)
数组是内存中数据的常规排列。想想一群士兵,他们都在一条线上,每个人之间的间距完全相等。
因此可以通过从基地址查找来索引它们。但所有物品的尺寸必须相同。因此,如果它们不存在,则存储指针或引用以使它们具有相同的大小。所有语言都使用该底层结构,除了有时被称为"关联数组",通过键(通常是字符串)索引,其中你有所谓的哈希表。本质上,哈希函数将密钥转换为数组索引,并具有解决冲突的修复方法。