Arraylist和Map哪個效能更好

2021-08-15 17:51:13 字數 651 閱讀 6245

如果arraylist 和map儲存的元素都比較多。那麼在取元素方面,arraylist要慢很多。

但是這也不是絕對的,因為arraylist底層基於陣列,如果你明確的知道你要取的元素在哪個下標上,那麼arraylist也是相當的快。但是如果你不清楚,只能通過迭代內部全部元素然後進行條件判斷查詢,那麼arraylist就要慢的多,因為他要從頭到尾乙個個的元素去查,直到找到滿足你的要求的那個元素,而map則不需要迭代,因為map有鍵,直接取鍵對應的值。

對於新增元素,arraylist是在陣列的結尾追加,當容量不夠時,建立乙個新的更長的陣列然後將舊的全部拷貝過來。map和他的方式差不多,也是容量不足的時候需要重新建立新的然後拷貝,但是當發生刪除元素時,arraylist簡直就是災難。假設你有10000個元素,你刪除首個元素,在刪除完畢以後 arraylist中的所有元素都必須進行一次移動操作,向前位移。。。而map則不需要。

大概就是這樣,如果你考慮乙個長度比較可**的儲存元素的集合,並且很少有刪除操作,大部分是進行全部迭代的操作,那麼用arraylist會比較合適。

如果你的list還要經常增刪,那麼用linkedlist比較合適。

如果你要快速查詢,取值,用hashmap比較合適。

如果同時要保證,元素放進去的順序和取出來的順序一致用linkedhashmap。

ArrayList及Map常用方法

arraylist 儲存有序可重複元素,增刪改查 分別為 list.add int index,object object list.remove int index list.set index,element list.get int index list.size map儲存無序,不可重複的元...

Array List和ArrayList的區別與

定義 public abstract class array icloneable,ilist,icollection,ienumerable,istructuralcomparable,istructuraequatable 陣列在記憶體中是連續儲存的,所以它的索引速度是非常的快,而且賦值與修改元...

有關ArrayList增加Map引發的乙個BUG

for int i 0 i後來經過跟蹤發現了問題,list每次把map的引用存進去,當呼叫map的clear 方法後,map裡面資料會被清空,最後map的資料就是最後放進去的。而list裡放的都是這個map的引用。因此也就不難理解為什麼會出現存放的資料是最後一次放進去的情況了。解決的方法就是每次都要...