Bootstrap

每天两道Java面试题(六)

11、ArrayList、LinkedList、Vector三者的区别

ArrayList

LinkedList

Vector

初始化容量

10

10

扩容机制

1.5倍

2倍

线程安全

不安全

不安全

安全

性能

较高

随机插入和删除性能比ArrayList好

较低

使用场景

大部分场合(频繁查找、在集合末端删除、插入)

随机插入和删除

多线程环境下需要保持数据一致性的场景

12、List和Set的区别

共同点:List和Set都扩展了Collection接口

不同点:(1)List的实现类有ArrayList和LinkedList等,Set的实现类有HashSet、LinkedHashSet和TreeSet类等。

(2)List是有序可重复的,Set是无序不可重复的。

(3)Set检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。List和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。

;