笔试之ArrayList、linkedlist、Vector区别; Hashmap与HashTable区别

ArrayList与linkedlist的区别:

二者都线程不安全.

ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。对于新增 和删除操作add(特指插入)和remove,LinkedList比较占优势,因为ArrayList要移动数据。

ArrayList与Vector的区别

Vector和ArrayList几乎是完全相同的

唯一的区别在于Vector是同步类(synchronized),属于强同步类。因此开销就比ArrayList要大,访问要慢。

Vector每次扩容请求其大小的2倍空间,而ArrayList是1.5倍。Vector还有一个子类Stack。

HashMap与HashTable的区别:

1、HashMap与HashTable都实现了Map接口。由于HashMap是非线性安全的,效率上就高于HashTable。 HashTable的方法是Synchronize。;在多个线程访问HashTable时,不需要自己来实现方法同步,而HashMap就要我们自己提供同步方法。

2、HashMap允许将null作为一个值,而HashTable不能

3、Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。

posted @ 2021-09-28 10:04  喂s别闹  阅读(77)  评论(0编辑  收藏  举报