ArrayList随机访问速度快
LinkList频繁插取速度快

解决方案 »

  1.   

    http://blog.csdn.net/treeroot/archive/2004/09/18/108790.aspx
      

  2.   

    两者都是简单的线性序列,都具有相同的接口和外部行为。事实在做某些操作的时候,它们的效率会有很大的区别。对于Arraylist,随机访问是一种时间恒定的操作,不论你访问哪个元素,所需要的时间是相同的。然而对于Linkedlist,随机访问和选取元素的代价会很大,但是另一方面,如果你要在这个序列中间插入元素的话,Linkedlist的效率会比Arraylist的高出许多。在设计阶段你可以用Linkedlist,到了性能调整阶段,你可以用Arraylist。因为两者的基类都是list
      

  3.   

    LinkedList 还能产生这样一个叠代器,方便操作元素
    .listIterator()产生一个迭代器   产生ListIterator对象通过该对象的方法可以对集合进行向前、向后的遍例         .hasprevious()、.previous()      使用.add()方法可以在集合的任意位置增加对象         iter.next();         iter.add("a");跳过第一个元素,将a添加到第二个元素之前。      使用.set()方法可以修改对象         取代通过调用next或者previous方法而返回的上一个元素
      

  4.   

    "在设计阶段你可以用Linkedlist,到了性能调整阶段,你可以用Arraylist。因为两者的基类都是list",此话如何理解?
      

  5.   

    List list=new Linkedlist();
    List list=new Arraylist();
    就是这个意思。
    怎么选择是不好说的,主要看你是以访问为主,还是插入删除为主。
      

  6.   

    ArrayList实现了一个可动态增长的类,其中元素可以从0开的索引访问,它可以任意增大
    Linkedlist 可以提供随机访问列表数据
      

  7.   

    你若知道Arraylist的长度,那么使用Arraylist分配固定的内存空间大小;你若不知道长度,那么使用Linkedlist一条一条插入就行了,不过这样速度就会减慢;
      

  8.   

    "在设计阶段你可以用Linkedlist,到了性能调整阶段,你可以用Arraylist。因为两者的基类都是list"也就是以Linkedlist为底层,用Arraylist来访问,可以用"List list=new Linkedlist();
    List list=new Arraylist();"来实现?
    我不理解.
      

  9.   

    不理解的同学,看看java interface的章节。
      

  10.   

    复习一下数据结构就知道区别了,List 提供了一个统一的接口
      

  11.   

    ArrayList
    优点:适合随机查询
    缺点:数量事先定好,只能用于小容量LinkList
    优点:适合在中间插入和删除值,数量可以无限增长
    缺点:不适合用get方法随机取值(因为它总是从第一个值开始找)
      

  12.   

    嘿嘿,还有 ArrayStack , LinkedStack ,同理.
      

  13.   

    ArrayList实现了数据结构中的线性表,LinkedList实现了数据结构中的链表.