陣列和ArrayList的區別
程式設計師的首要責任之一就是有效地管理資料。各種各樣的資料結構可以幫助程式設計師處理資料。
陣列資料結構已經存在很長時間了,並且是用於儲存資料最常見的資料結構之一。陣列易於實現是其廣泛應用的主要原因之一。這使得新手更容易理解這種資料結構。
ArrayList是Java集合框架中提供的附加功能之一。在本文中,我們將探討Java中陣列和ArrayList的所有異同。
什麼是陣列?
陣列是一種簡單的線性資料結構,它在連續的記憶體位置儲存其元素,每個元素都具有相同的名稱但具有不同的索引號。陣列中儲存的所有資料必須是相同型別。宣告陣列後,其大小不能更改。
語法
Datatype array_name = new datatype[size of array];
示例
Int Test_Array = new int[100];
什麼是ArrayList?
ArrayList與強型別集合不同,這是陣列與ArrayList的不同之處之一。它是一個可調整大小的陣列,可以在java.util包中找到。它可以儲存相同或不同型別的資料。可以動態地增加或減少其大小以容納任何大小和任何資料型別的任何值。
ArrayList提供了一個簡單易用的值列表。您會發現ArrayList實現了IList介面,因為它與陣列相容。它允許您修改、新增、插入、刪除或檢視您輸入的資料型別。
使用Java中的get( )方法,您可以訪問已建立的ArrayList的任何元素。
語法
ArrayList Object_name=new ArrayList();
示例
ArrayList Test_Arrlst = new ArrayList ( ); Arrlst.Add (“Sam”); Arrlst.Add (“300”); Arrlst.Add (“null”);
陣列和ArrayList的比較
下表突出顯示了陣列和ArrayList的主要區別:
比較依據 | 陣列 | ArrayList |
---|---|---|
定義 | 陣列是一種簡單的線性資料結構,它在連續的記憶體位置儲存其元素,每個元素都具有相同的名稱但具有不同的索引號。陣列中儲存的所有資料必須是相同型別。宣告陣列後,其大小不能更改。 | ArrayList是Java集合框架中的動態資料結構。它包含相同型別的元素。在這種情況下,我們不需要指定列表的長度。 |
靜態/動態 | 陣列是靜態的 | ArrayList是動態的 |
可調整大小 | 固定長度 | 可調整大小 |
初始化 | 初始化陣列時,需要指定陣列的大小。 | 不需要提及ArrayList的大小。 |
效能 | 陣列更快 | ArrayList較慢 |
泛型型別 | 陣列可以儲存原始資料和物件,但不能儲存泛型。 | ArrayList可以儲存泛型和物件,但不能儲存原始型別資料。 |
迭代 | 僅允許迴圈。 | 允許使用迴圈和迭代器。 |
型別安全 | 不是型別安全的。 | 是型別安全的。 |
長度 | 使用length屬性 | 使用size()方法 |
新增元素 | 使用賦值運算子新增。 | ArrayList使用add()方法新增元素 |
單/多維 | 可以是單維或多維的。 | 只能是單維的。 |
結論
陣列是低階資料結構這一事實可能導致某些人認為在程式中實現陣列比使用ArrayLists更快。但是,速度可能因程式執行的操作而異。
就功能而言,ArrayList略勝於Array,因為ArrayList的大小可以動態增加或減少,而Array的長度始終相同。
儘管它們不同,但在其他方面仍然相似。Java中的這些資料結構都是基於索引的,並且允許您儲存物件。此外,這兩種資料結構都允許空值和重複值。如果您事先知道物件的大小,則應使用陣列;但是,如果您不確定大小,則應使用ArrayList。