0

可能重复:
为什么数组不可扩展?

我开始学习 Java,因为我的计算机科学学校的作业需要这种语言,而且我很喜欢这种语言。但是,我已经看到 Java 数组是不可扩展的 - 也就是说 - 您必须在使用它们之前声明它们的长度并且不能进一步更改它。

我想确切地知道这是为什么?为什么 Java 语言设计者选择这样制作数组?我想这是出于性能问题,但我不确定。

提前感谢大家。

4

4 回答 4

8

我想确切地知道这是为什么?为什么 Java 语言设计者选择这样制作数组?我想这是出于性能问题,但我不确定。

他们将原语和数组设计得尽可能简单和低级。他们没有做任何特别的事情,数组根本不使用面向对象的设计。即他们只有几个有用的方法,没有特定于数组。

这个想法是您将使用这些低级构造编写更高级别的集合,例如列表。

于 2013-01-24T14:00:31.377 回答
3

Java 数组几乎与 C 数组一样简单。C 数组只是一个 n*m 字节的分配内存区域,其中 n 是数组中的元素数,m 是存储单个元素所需的字节数。

那么这里唯一添加的 Java 就是length而且可能是toString(). 所有其他功能都可能使阵列性能无效。收藏品很好地做到了这一点。此外,集合是用 java 本身编写的,这使得它们具有可移植性。

于 2013-01-24T14:01:23.663 回答
0

为什么 Java 语言设计者选择这样制作数组?

数组是该语言提供的编程数据结构之一。如果您使 Array 也可扩展,它将变得类似于ArrayList

所以,我猜是因为两个原因:

  1. 使 Java 在基本结构上与以前的语言相似。
  2. 删除重复。
于 2013-01-24T14:02:31.257 回答
0

数组占用连续的内存位置,编译器无法确保数组末尾之后的位置可以添加到数组中。

这就是为什么很多人使用 LinkedList 或 ArrayList

这个问题有答案

为什么数组不可扩展?

于 2013-01-24T14:05:34.440 回答