gpt4 book ai didi

java - 为什么数组元素必须是同一类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:29 27 4
gpt4 key购买 nike

数组 DS 要求其所有成员具有相同的时间。 Java 抛出 ArrayStoreException当试图将错误类型的对象存储到对象数组中时。不记得 C++ 做了什么。

我的理解是否正确,将所有相同类型的对象都放在数组中很重要因为它保证通过以下两个操作访问恒定时间元素:

1) element size * element index = offset
2) array pointer address + offset

如果对象的类型不同,因此大小也不同,则上述公式将不起作用。

最佳答案

因为:我们想要这样。

我的意思是:使用 Java 语言(C++ 可能也是如此)的人出于某种目的使用静态类型 语言。

当这些人开始思考复数时;他们通常以“相似”事物的复数形式思考。

警告:在 Java 中,一切都是对象,因此您始终可以声明一个 Object[] 并将任何内容填充到其中。字符串、数字等等。

这也引出了另一个重要方面:在 C++ 中,您的数组代表内存中的一个区域。你最好在那个区域有相同大小的元素;以避免数据损坏。

另一方面,在 Java 中,数组指向原始内存。

长话短说:在这种情况下,Java 和 C++ 之间存在真正的区别(必须了解这一点才能做出明智的决定);然后是“语言”本身。换句话说:这不是 Ruby 领域,在这里您无需进一步思考就可以将鸭子、数字、植物和嘎嘎声放在同一个“列表”中。

最后的想法,基于上一段中的那个笑话:在我看来,数组 是列表概念的实现,因此它是关于相同性质的事物的集合。如果您想要一组不相关的东西,我宁愿称其为元组

关于java - 为什么数组元素必须是同一类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43538225/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com