请问各位
  vector linkedlist arraylist 在使用上有区别吗

解决方案 »

  1.   

    ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。
    size,isEmpty,get,set方法运行时间为常数。但是add方法开销为分摊的常数,添加n个元素需要O(n)的时间。其他的方法运行时间为线性。
      每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。上面两个都是非同步的Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常
      

  2.   

    楼上的分析的很对,在这里,我也得到了一定的启发,就是线程访问大量对象时,可以将这些对象放在Vector中,然后进行访问。
      

  3.   

    唉,zhangj0571(笨鸟飞飞) 回答的太详细了,我都没地方下嘴了!
      

  4.   

    arraylist可以完成取代vector 个人意见
      

  5.   

    DrinkT() ( ) 信誉:100    Blog 啊!是这样啊!
    同步,非同步的概念
    是不是跟基本数据类型和引用数据类型,传值的概念差不多?
    非同步的,元素使用之后不改变
    同步的,元素使用后改变吧?
    ----------------------------------------
    当你用到一个共享的数据域的时候,为了避免其他操作影响该数据域,你就用到同步了!
    但同步会产生死锁
      

  6.   

    szb110
    楼上的分析的很对,在这里,我也得到了一定的启发,就是线程访问大量对象时,可以将这些对象放在Vector中,然后进行访问。可是为什么呢?同步不是慢吗,又那么多对象在里面,什么时候能完事啊