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可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变。