A programmer has an algorithm that requires a java.util.List that provides an 
efficient implementation of add(0, object), but does NOT need to support quick 
random access. 
What supports these requirements? 
 
A. java.util.Queue 
B. java.util.ArrayList 
C. java.util.LinearList 
D. java.util.LinkedList
Answer: ( D )
参考大纲:集合
请高手讲解,选B行吗,而且题目也看不太清楚

解决方案 »

  1.   

    java.util.ArrayList访问是所有集合中最快的,它的实现基于Array对象,可惜它是一个无序集合,在内存中的存放是无序的,当我们使用get的时候,是随机获取此集合内存块中的某一个地址。java.util.LinkedList的访问比不上上面的集合对象,但它是一个有序集合,换句话说,它实现了队列机制,使用add是所有集合中最快的。SCJP考的是程序的设计和架构....一般运用的都是基础知识..
      

  2.   

    需要一个具有高效的add(0,object)方法的List,但是不需要快速随机访问。ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
    对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。
    对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。有以上可以知道,D才满足题目的需求。