集合相关面试问题

1.ArrayList和Vector的区别

首先,这两个类都实现了List接口(List接口继承了Collection接口),是有序集合,相当于一种动态的数组,能够通过索引(元素在List中位置,类似于数组的下标)来访问元素,并且其中的数据是允许重复的。

区别主要包括两个部分:

(1)同步性:

Vector是线程安全的,而ArrayList是非线程安全的,所以如果不是要求线程安全的情况下,最好使用ArrayList,效率会高些。

(2)数据增长:

ArrayList与Vector都有一个初始的容量大小,当存储超过了容量时,就需要增加ArrayList与Vector的存储空间,Vector默认增长原来的一倍,ArrayList增加原来的0.5倍。

2.ArrayList 和 LinkedList 的区别

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

(2) 对于添加、删除元素,LinedList比较占优势,因为ArrayList要移动数据。

(3) 对于遍历和查找元素,ArrayList比较快,因为LinkedList要移动指针。

猜你喜欢

转载自www.cnblogs.com/liaowenhui/p/12262953.html