ArrayList增加速度比linkedList快這是為

2022-12-19 22:35:52 字數 2223 閱讀 6178

1樓:風之獨韻

因為arraylist是以陣列的方式 儲存的,得到資料直接用下標就可以了,刪除也直接根據下標就刪除了,用arraylist查詢時最快的;而linkedlist是以雙向連結串列的形式儲存的,刪除和增加資料速度快,只要把兩邊的指向變化就可以了。而arraylist刪除和增加資料都涉及到資料的移動問題,相對而言慢點。

j**a中arraylist為什麼比linkedlist查詢速度快

2樓:撩漢那一抹淺笑

因為arraylist是以陣列的方式 儲存的,得到資料直接用下標就可以了,刪除也直接根據下標就刪除了,用arraylist查詢時最快的;而linkedlist是以雙向連結串列的形式儲存的,刪除和增加資料速度快,只要把兩邊的指向變化就可以了。而arraylist刪除和增加資料都涉及到資料的移動問題,相對而言慢點。

有沒有比arraylist遍歷快,比linkedlist插入,刪除快的類

arraylist 和 linkedlist哪個迭代操作快

3樓:巨人戰艦

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

4樓:楊洋學財商

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

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

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

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

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

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

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

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

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

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

5樓:小濤

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

一個是底層是陣列

一個是連結串列

查詢就arraylist

增刪改多的話就linkedlist

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

arraylist為什麼查詢速度快,增刪速度慢

6樓:

因為arraylist底層是陣列實現的,根據下標查詢不需要比較,查詢方式為,首地址+(元素長度*下標),基於這個位置讀取相應的位元組數就可以了,所以非常快;增刪會帶來元素的移動,增加資料會向後移動,刪除資料會向前移動,所以影響效率。

arraylist和linkedlist在修改資料方面哪個有優勢

7樓:匿名使用者

簡單說,修改資料,看你怎麼修改

比如你簡單的替換,把第二個物件,換成其他的,肯定是arraylist更快。

但如果你是修改列表內容結構,比如從列表中間刪除一個,那肯定是linkedlist快,

不過也有特例,刪除最後一個元素,arraylist更快。

插入資料也一樣,在中間或者開始插入資料linkedlist快,

但是如果在末尾插入,就要看具體情況了。

arraylist容量足夠的情況下,arraylist快,否則linkedlist快。

arraylist的容量是動態擴充套件的,所以會批量的為將來在最後插入資料提供空間。

8樓:匿名使用者

arraylist 在修改資料方面有優勢 因為要修改就要查詢 而arraylist採用的是佇列的思想所以查詢快

而linkedlist採用連結串列思想 查詢效率慢 但插入效率很高

加速度題目

1錯2有可能就是加速度為0的時候 加速度為正的時候速度增大,加速度為負時速度減小,0的時候不變 先選好參考方向 不用管加速的的增減情況,只要是正的速度就是增加。只是增加的快慢有了變化而已 物體的加速度不變 不為零 速度也不變 錯錯錯重力加速度永遠是g,一個物體自由落體,速度不是在變啊加速度是0時,速...

勻變速圓周運動中切向加速度 法向加速度 加速度的大小與方向是

做勻速圓周運動的質點切線加速度為零,所以切向加速度不變,法向加速度大小不變。方向一直指向圓心。計算公式 1 v 線速度 s t 2 r t r 2 rn s代表弧長,t代表時間,r代表半徑,n代表轉速 2 角速度 t 2 t 2 n 表示角度或者弧度 3 t 週期 2 r v 2 1 n 4 n 速...

加速度是速度的導數為什麼速度為零加速度不一定為零

例如,豎直上拋,到達最高點時,速度為零,但是加速度為g,加速度表示的是速度變化的快慢 既然你知道導數,就應該知道倒數就是曲線在某一點的切線的斜率吧?曲線在某點與橫軸相交 就好比v 0 但是曲線在這一點的切線卻不一定水平 即a不一定是零 以人們熟知的豎直上拋為例,v v0 gt 你對速度求導,看看是不...