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 你對速度求導,看看是不...