關鍵區別–arraylist與linkedlist
集合對於存儲數據很有用。在普通數組中,數組大小是固定的。有時需要創建可以根據需要增長的陣列。Java等編程語言有集合。它是一個包含一組類和接口的框架。它充當一組元素的容器。集合允許存儲、更新、檢索元素集。它有助於處理數據結構,如列表、集合、樹和地圖。列表是集合框架的一個接口。ArrayList和LinkedList是collecti***框架中的兩個類。它們實現了集合接口和列表接口。本文討論ArrayList和LinkedList之間的區別。ArrayList是一個擴展AbstractList並實現List接口的類,該接口在內部使用動態數組來存儲數據元素。LinkedList是一個擴展AbstractSequentialList並實現List、Deque和Queue接口的類,這些接口在內部使用雙鏈接列表來存儲數據元素。這就是ArrayList和LinkedList之間的關鍵區別。
目錄
1. 概述和主要區別
2. 什麼是ArrayList
3. 什麼是LinkedList
4. ArrayList和LinkedList之間的相似性
5. 並列比較——ArrayList與LinkedList以表格形式顯示
6. 摘要
什麼是數組表(arraylist)?
ArrayList類用於創建動態數組。與常規數組不同,動態數組的大小不固定。使用ArrayList類創建的對象允許在列表中存儲一組元素。容量自動增加,這樣程序員就可以向列表中添加元素。ArrayList類擴展了實現列表接口的AbstractList類。因此,ArrayList可以使用列表接口的方法。要訪問元素,使用get()方法。add()方法可用於向列表中添加元素。方法用於從列表中刪除元素。請參閱以下程序。
根據上面的程序,創建了一個ArrayList對象。使用add方法,可以動態地添加元素。元素“A”、“B”、“C”、“D”和“E”是使用add方法添加的。remove方法用於從列表中刪除元素。將4傳遞給remove方法時,第4個索引中的字母“E”將從列表中移除。當使用for循環遍歷列表時,將打印字母A、B、C和D。
什麼是雙鏈表(linkedlist)?
與ArrayList類似,LinkedList用於動態存儲數據元素。允許使用LinkedList類創建的對象在列表中存儲一組元素。容量會自動增加,因此程序員可以向列表中添加元素。它內部使用雙鏈表來存儲數據。在雙鏈接列表中,數據作為節點存儲。每個節點包含兩個鏈接。第一個鏈接指向上一個節點。下一個鏈接指向序列中的下一個節點。
LinkedList類擴展AbstractSequentialList類並實現List接口。因此,LinkedList可以使用List接口的方法。get()方法可用於訪問列表的元素。add()方法可用於將元素添加到列表中。remove()方法用於從列表中移除元素。參考以下程序。
根據上述程序,創建LinkedList對象。使用add方法,可以動態地添加元素。元素“A”、“B”、“C”、“D”和“E”是使用add方法添加的。remove方法用於從列表中刪除元素。將4傳遞給remove方法時,第4個索引中的字母“E”將從列表中刪除。當使用for循環迭代時,將打印字母A、B、C和D。
數組表(arraylist)和雙鏈表(linkedlist)的共同點
- ArrayList和LinkedList都實現了列表接口。
- ArrayList和LinkedList都可以包含重複的元素。
- ArrayList和LinkedList都維護**順序。
數組表(arraylist)和雙鏈表(linkedlist)的區別
ArrayList與LinkedList | |
ArrayList是一個擴展AbstractList並實現List接口的類,該接口在內部使用動態數組來存儲數據元素。 | LinkedList是一個擴展AbstractSequentialList並實現List、Deque、Queue接口的類,後者在內部使用雙鏈接列表來存儲數據元素。 |
訪問元素 | |
訪問ArrayList的元素比LinkedList的快。 | 訪問LinkedList的元素比訪問ArrayList慢。 |
操縱元素 | |
操作ArrayList的元素比LinkedList慢。 | 操作LinkedList的元素比ArrayList快。 |
行為 | |
ArrayList作為一個列表執行。 | LinkedList作為列表和隊列執行。 |
總結 - 數組表(arraylist) vs. 雙鏈表(linkedlist)
集合框架允許使用數據結構,如列表、樹、地圖和集合。列表是集合框架的一個接口。本文討論了ArrayList和LinkedList之間的區別。ArrayList是一個擴展AbstractList並實現List接口的類,該接口在內部使用動態數組來存儲數據元素。LinkedList是一個擴展AbstractSequentialList並實現List、Deque、Queue接口的類,後者在內部使用雙鏈接列表來存儲數據元素。這就是ArrayList和LinkedList之間的區別。