题目:下面关于Java中的Vector、ArrayList、LinkedList的表述正确的是____(多选)
A、这三个类都实现了java.util.List 接口,但只有Vector是线程安全的
B、ArrayList与Vector在从指定位置用index检索一个元素的时候,时间开销是o(1)
C、LinkedList在插入、删除任意位置元素的时间开销都是o(1),但它在索引一个元素的时候比较慢,为o(i),其中i是索引的位置
D、当向这几种类型中增加元素时,如果数目超出了其目前的长度,Vector缺省情况下自动增长原来一倍的长度,而ArrayList与LinkedList则增长5%的长度
结果:A、B、C
解释:
A:三个都实现了List接口,A正确。
B:ArrayList和Vector的底层数据结构是数组,数组检索快,添加删除慢,时间开销是o(1),B正确;
C:LinkedList底层数据结构是双向链表,链表检索慢,添加删除快,时间开销是o(i),C正确。
D:Vector按照原来的2倍扩容,ArrayList按照原来的1.5倍扩容,LinkedList底层结构是双向链表,所以没有初始容量,也不扩容,D错误。