Java 中 List 和 ArrayList 的區別
Java 中的集合框架包含一組類和介面,有助於實現各種資料結構。List 和 ArrayList 屬於此集合框架。List 是一個介面,而 ArrayList 是一個類。它們的主要目標是建立列表資料結構。List 是一個有序元素的集合,使用索引的概念進行排列。陣列使用動態陣列的概念來儲存元素。
什麼是 Java 中的 List?
List 是集合框架中的一個介面。它以有序的方式儲存物件。這裡,元素是按順序儲存的。List 允許儲存重複的值。在 List 中,元素的插入、刪除、更新和搜尋操作是使用基於索引的方法進行的。因為它保留了儲存元素的索引,所以很容易訪問它們。
您可以使用 java.util 包的幫助下使用 List 介面。List 介面可以由 LinkedList、ArrayList、vector、stack 等類實現。這些類用於在 Java 中實現列表的概念。ListIterator 類也基於此 List,使我們能夠遍歷列表。此介面的例項是使用這些類建立的。
列表中的每個元素都有一個索引。使用此索引,可以輕鬆訪問該元素。元素的索引從零開始。除了繼承自集合框架的方法外,List 還有自己的方法。它們是“add (int, E)”和“addAll (int, collection)”。這些方法用於根據其索引將元素新增到列表中。它還具有 get()、set() 和 sublist() 方法,用於訪問元素、設定值以及建立給定列表的子列表。
什麼是 Java 中的 ArrayList?
ArrayList 是一個擴充套件抽象類,它實現了 List 介面。ArrayList 類似於陣列,不同之處在於,當向其中新增或刪除元素時,其大小會自動增加或減少。它遵循動態陣列的概念。ArrayList 可以儲存相同或不同的元素。
使用 ArrayList,我們可以在任何索引處插入、更新、刪除元素。ArrayList 中的插入和刪除操作比 List 慢。當我們將一個新元素插入到現有的 ArrayList 中時,其下方的元素將移到下一個索引。類似地,刪除一個元素會導致元素移到先前的索引,這是一個耗時的過程。
ArrayList 最適合搜尋操作。它可以更快地獲取結果。它的索引也從零開始。
ArrayList 具有執行各種操作的方法。其中一些是 -
add() - 用於將元素新增到 ArrayList 中
get() - 用於訪問元素
set() - 用於修改現有元素
remove() - 用於從 ArrayList 中刪除或移除元素
clear() - 用於清除 ArrayList 中的所有元素
以下是一些使用 ArrayList 的優點 -
ArrayList 具有動態大小。它們會根據輸入的元素自動增加或減少其大小。
ArrayList 可以儲存空元素。它們也允許重複值。
可以從特定索引插入或刪除元素。
我們可以輕鬆地從所需的索引訪問元素
ArrayList 可以儲存多種資料型別。
ArrayList 提供了各種方法來操作其中存在的元素。可以向前和向後訪問元素
以下是使用 ArrayList 的一些缺點 -
在 ArrayList 中插入或刪除元素是一個緩慢的過程,因為它涉及到其中資料的完全移位
ArrayList 不能儲存諸如 int、float 等原始資料型別。它們只能儲存物件型別
差異:Java 中的 List 和 ArrayList
下表重點介紹了 Java 中 List 和 ArrayList 之間的主要區別 -
List |
ArrayList |
---|---|
List 是集合框架的一個介面 |
ArrayList 是實現 List 介面的類之一 |
它擴充套件了集合框架 |
它擴充套件了抽象類 |
List 建立可以使用索引訪問的元素列表 |
ArrayList 建立動態陣列,也可以使用其索引訪問 |
System.Collection.Generic 是 List 介面的名稱空間 |
System.collection 是 ArrayList 的名稱空間 |
它用於建立可以使用其索引訪問的有序元素列表 |
它用於建立元素的動態陣列 |
在 List 中,插入和刪除操作比 ArrayList 快 |
在 ArrayLisst 中,插入和刪除操作較慢 |
在 List 中,搜尋速度較慢 |
它允許更快地搜尋元素 |
List 無法例項化 |
ArrayList 可以例項化 |
結論
List 是集合框架的一個介面,而 ArrayList 是一個用於實現列表概念的類。ArrayList 由於其動態特性而被廣泛使用。普通陣列只能儲存單一資料型別的值,而 ArrayList 則不然。ArrrayList 可以儲存不同資料型別的值。