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