2013-01-24 93 views
0

可能重複:
Why aren’t arrays expandable?爲什麼Java數組不可擴展?

我開始學習Java作爲我的計算機科學學校的作業都需要這種語言,我喜歡的語言。但是,我已經看到Java數組不可擴展 - 也就是說 - 在使用它們之前必須聲明它們的長度,並且不能進一步更改。

我想知道到底爲什麼?爲什麼Java語言設計者選擇創建數組呢?我想這是出於性能考慮,但我不確定。

謝謝大家提前。

+0

參見:原語。 – keyser

+0

很難爲無限數組分配足夠的內存 –

+1

爲什麼C數組也不可擴展? –

回答

8

我想知道到底爲什麼?爲什麼Java語言設計者選擇創建數組呢?我想這是出於性能考慮,但我不確定。

他們設計的基元和數組儘可能地簡單和低層次。他們沒有做任何特殊的事情,陣列根本不使用面向對象的設計。即它們只有少數有用的方法,沒有特定於陣列。

想法是,你會編寫更高級別的集合,如列表使用這些低級別的結構。

3

Java數組幾乎和C數組一樣簡單。 C數組只是一個分配的內存區域,其中n是n * m個字節,其中n是數組中元素的數量,m是存儲單個元素所需的字節數。

然後只有這裏加入的Java是length,可能是toString()。所有其他功能可能會導致陣列性能無效。集合做得非常好。此外,集合是用java編寫的,這使得它們可移植。

0

爲什麼Java語言設計者選擇創建數組?

數組是該語言提供的編程數據結構之一。如果你使Array也可擴展,它將變得類似於ArrayList

所以,我想有兩個原因:

  1. 使Java類似以前語言在基本結構。
  2. 刪除重複。
+0

爲什麼downvoted?任何推理? – Azodious

+0

對不起,我真的很抱歉。現在Upvoted。 – rodrigoalves

0

數組佔用連續的內存位置,編譯器無法確定數組末尾的位置是否可以添加到數組中。

這就是爲什麼很多人使用的LinkedList或ArrayList中

這個問題是answred

Why aren't arrays expandable?

相關問題