可能重复:
为什么数组不可扩展?
我开始学习 Java,因为我的计算机科学学校的作业需要这种语言,而且我很喜欢这种语言。但是,我已经看到 Java 数组是不可扩展的 - 也就是说 - 您必须在使用它们之前声明它们的长度并且不能进一步更改它。
我想确切地知道这是为什么?为什么 Java 语言设计者选择这样制作数组?我想这是出于性能问题,但我不确定。
提前感谢大家。
可能重复:
为什么数组不可扩展?
我开始学习 Java,因为我的计算机科学学校的作业需要这种语言,而且我很喜欢这种语言。但是,我已经看到 Java 数组是不可扩展的 - 也就是说 - 您必须在使用它们之前声明它们的长度并且不能进一步更改它。
我想确切地知道这是为什么?为什么 Java 语言设计者选择这样制作数组?我想这是出于性能问题,但我不确定。
提前感谢大家。
我想确切地知道这是为什么?为什么 Java 语言设计者选择这样制作数组?我想这是出于性能问题,但我不确定。
他们将原语和数组设计得尽可能简单和低级。他们没有做任何特别的事情,数组根本不使用面向对象的设计。即他们只有几个有用的方法,没有特定于数组。
这个想法是您将使用这些低级构造编写更高级别的集合,例如列表。
Java 数组几乎与 C 数组一样简单。C 数组只是一个 n*m 字节的分配内存区域,其中 n 是数组中的元素数,m 是存储单个元素所需的字节数。
那么这里唯一添加的 Java 就是length
而且可能是toString()
. 所有其他功能都可能使阵列性能无效。收藏品很好地做到了这一点。此外,集合是用 java 本身编写的,这使得它们具有可移植性。
为什么 Java 语言设计者选择这样制作数组?
数组是该语言提供的编程数据结构之一。如果您使 Array 也可扩展,它将变得类似于ArrayList。
所以,我猜是因为两个原因: