「java」关于ArrayList 、 LinkedList 、 HashMap 描述错误的
集合类包括 ArrayList 、 LinkedList 、 HashMap 等,下列关于集合类描述错误的是?
A、ArrayList和LinkedList均实现了List接口
B、ArrayList访问速度比LinkedList快
C、随机添加和删除元素时,ArrayList的表现更加快速
D、HashMap实现Map接口,它允许任何类型的键和值对象,并允许将NULL用作键或值
本题考察的是面试者的java基础知识和对ArrayList和LinkedList的认识。
A,两个都是实现了List接口:
public class ArrayList
public class LinkedList
两个类继承的抽象类中实现了List接口。
B,ArrayList底层是个动态数组,默认长度是10,默认扩容倍数是2,扩容就是数组复制。LinkedList底层是个双向链表。随机访问数组比较快。
C,随机添加和删除,对于ArrayList而言,前者调用 public void add(int index, E element) ,这个插入会把插入点的所有数据往后移动一位,很麻烦,后者public E remove(int index) 、 public boolean remove(Object o) 这两个方法一样的,都是要移动数组。而LinkedList(链表,靠指针实现)是需要改变一下Node节点中next的指向就可以了。
D,HashMap中K,V都可以是null,但是Hashtable中,K,V都不能是null,很多人会选择这个答案,Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现,它们都是集合中将数据无序存放的。
所以答案应该才C。
关注我们,每天都有精品面试题