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不是。