arraylist在遍歷的過程中能刪除嗎 arraylist和linkedlist的區別?
arraylist和linkedlist的區別?ArrayList和LinkedList共性:ArrayList和LinkedList都是List接口的實現類,所以都實現了List所有未實現的方法,只
arraylist和linkedlist的區別?
ArrayList和LinkedList
共性:ArrayList和LinkedList都是List接口的實現類,所以都實現了List所有未實現的方法,只是實現方法不同。
區別:List接口的實現不同。
ArrayList以數組的形式實現了List接口,所以使用ArrayList來實現快速隨機獲取對象的要求會更高效。
LinkedList使用鏈表實現列表接口,所以在執行插入和移除動作時比ArrayList更高效。適用于實現堆棧和隊列。
哈希表和哈希表
共性:都實現了地圖接口。
差異:
(1)繼承的父類不同
Hashtable從Dictionary類繼承,HashMap從AbstractMap類繼承。
(2)線程安全性不同
Hashtable方法是同步,而HashMap中的方法默認是不同步的。
(3)提供contains方法
HashMap去掉了Hashtable的contains方法,改成了containsValue和containsKey,因為contains方法容易被誤解。
Hashtable保留了三種方法:contains、containsValue和containsKey,其中contains和containsValue的作用相同。
(4)4)鍵和值是否允許空值。
在哈希表中,鍵和值都不允許為空值。在HashMap中,null可以作為一個鍵,而且這樣的鍵只有一個;一個或多個鍵可以有空值。
(5)兩種遍歷模式的內部實現不同。
HashMap使用迭代器;;Hashtable使用迭代器和枚舉。
(6)哈希值不同
哈希值的用法不同。HashTable直接使用對象的hashCod
linklist與arraylist誰更占空間?
ArrayList類似于數組,按順序存儲在內存中。LinkedList類似于鏈表,沒有順序,但是每個元素都是通過指針鏈接的。因為LinkedList是無序存儲的,所以它可以入到任何地方,只要指針指向它。ArrayList是有序的,插入要遍歷到你想插入的位置,所以效率比較低。
因為ArrayList是有序的,查詢時輸入索引就可以快速找到,而LinkedList不是。