ArrayList和LinkedList哪個迭代操作快

時間 2022-05-16 17:00:02

1樓:巨人戰艦

事實上肯定是linkedlist效率比較快,因為在內部是通過連結串列連結的,而arraylist則是直接存取比較快一些,因為內部用的是下標索引。以下是在我電腦進行五次測試的結果,你多測試測試,結果肯定是linkedlist比較快

2樓:楊洋學財商

因為你的 arraylist 存放元素大小是固定的,並且在事先已經指定並開僻了指定數量的容量的陣列空間,實際上只是對陣列進行了操作。

而 linkedlist 是採用連結串列實現的,在事先無法指定容量,每新增一個資料都得去開僻新的空間。

如果在新增時這樣進行比較的話,對於 linkedlist 是很不公平的。

對於迭代來說,arraylist 速度遠比 linkedlist 慢,因為連結串列迭代是很快的,如果要讓 arraylist 比 linkedlist 快的話,可以使用下標索引。

一般來說,arraylist 和 linkedlist 具體使用哪一個以下這些我總結的使用規則:

1:事先能預知元素數量時,應優先選擇 arraylist,並且在構造中進行初始化

2:事先不能預知元素數量時,根據不同的迭代需要選擇 arraylist 或者 linkedlist

3:如果有很多的 remove 操作時,應優先選擇 linkedlist

4:需要順序迭代,也就是從第一個元素開始一個一個地訪問到最後一個時,應優先選擇 linkedlist

5:需要隨機訪問,也就是使用 get(int) 方法取任意下標訪問時,應優先選擇 arraylist

3樓:小濤

個人覺得討論這個意義不大

一個是底層是陣列

一個是連結串列

查詢就arraylist

增刪改多的話就linkedlist

你這個和電腦的執行環境有很大關係 執行緒輪轉 差幾毫秒是必須的

arraylist、linkedlist、hashmap哪個速度更快

4樓:匿名使用者

要回答這個問題,要寫很多內容,還是用下面一寫,四個答案由樓主自己一想就知道了。

1、arraylist 有序集合 底層為陣列 按下標查詢快 增刪慢 按元素查詢、增刪都慢

2、linkedlist 有序集合 底層為連結串列 按下標查詢慢 增刪快 按元素查詢慢 增刪比arraylist快

3、hashmap 無序雜湊表 底層雜湊表 按下標查詢一般比linkedlist快 增刪快跟主體大小有關

按元素查詢快 增刪快跟主體大小有關,越大越慢

要是hashmap改成hashset就更合適些了,map和list是不同的資料結構,放在一起有點不合適。hashset就更好些,雖然set的底層是hashmap。

再理解下吧。

5樓:匿名使用者

arraylist實現了長度可變的陣列,在記憶體中分配連續的空間。遍歷元素和隨機訪問元素的效率比較高但是插入和刪除元素時效率不高。

linkedlist採用連結串列儲存方式,每個元素之間的前後順序是以引用的方式指定的。插入、刪除元素時效率比較高。

map介面儲存一組鍵值物件,提供key(建)到value(值)的對映map介面最常用的實現類是hashmap。map介面的實現類中是使用put方法儲存資料的。

arraylist和linkedlist的區別 遍歷速度

6樓:

arraylist是連續存放,用下標訪問,速度比較快,但不夠靈活,因為大小是預先固定的。

linkedlist是離散存放,用指標訪問,大小可以隨時變化,很靈活,但定址速度會比arraylist略慢,其實對於現在的計算速度,總體來說,影響不大。

請採納!

7樓:

arraylist陣列儲存,linkedlist連結串列儲存。

arraylist是實現了基於動態陣列的資料結構,linkedlist基於連結串列的資料結構。

查詢和插入操作,arraylist覺得優於linkedlist,因為linkedlist要移動指標。

新增和刪除操作,linedlist比較佔優勢,因為arraylist要移動資料。

若只對單條資料插入或刪除,arraylist的速度反而優於linkedlist。但若是批量隨機的插入刪除資料,linkedlist的速度大大優於arraylist.

因為arraylist每插入一條資料,要移動插入點及之後的所有資料。

查詢操作indexof,lastindexof,contains等,兩者差不多。

連結串列和陣列的迭代效率哪個高?

8樓:匿名使用者

陣列,因為陣列的儲存在空間上是連續的。

因為空間區域性性(快取的存在),陣列迭代效率更高。

當然也不絕對(如果你的迭代序列因為快取發生抖動,速度就大打折扣),但幾乎都是陣列更快。

9樓:目標月薪

如果不考慮記憶體的話陣列好,陣列地址連續,可以隨即訪問。陣列相對連結串列空間利用率比較低。

連結串列地址不連續,不能隨機訪問,訪問需要遍歷,時間上比較慢點吧。

10樓:匿名使用者

這還要問嘛。當然是陣列效率高了

Arraylist重寫Collection中所有方法嗎

在泛型,equals是否重寫,意義不大了。j a中,collection c new arraylist collection 中的tostring 方法 看下類的定義 public class arraylistextends abstractlistimplements list,randoma...

陣列和arraylist的區別,陣列 Array 和列表 ArrayList 有什麼區別?什麼時候應該使用Array而不是ArrayList?

arraylist底層是變長陣列維護的,不需要定義其大小,如果長度不夠了就會自動擴充套件為原來長度的一倍 陣列的大小在定義的時候已經是個固定的值,不會自動擴充套件,陣列的效率比集合的效率高,各有側重點。具體如下 一 陣列 優點 在記憶體中時連續的,速度較快,操作簡單。缺點 定義陣列時要定義其長度,不...

ArrayList只能存string,int那些麼

arraylist可以儲存物件和基本值,基本上沒有他存不了的東西 list和arraylist的區別 list是一個介面,而arraylist是一個類,它實現了list介面。所以list不能被構造,list list new list 這種寫法是錯誤的,而arraylist就可以被構造。list l...