请教List,ArrayList与Vector之间有什么区别!!!!

解决方案 »

  1.   

    List是接口
    ArrayList和Vector都是实现了List接口的类,它们实现的方式都是通过数组来实现List接口的功能,但像LinkedList则是通过链表的方式来实现List
    它俩之间的区别主要在于Vector中的方法是线程安全,造成的缺点就是性能差,所以在后来的版本中提供了其替代品ArrayList,ArrayList不是线程安全的,所以在搞多线程时如果使用ArrayList要注意一下,平常使用的话推荐性能更高的ArrayList
      

  2.   

    List是接口,List是有序的Collection,使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。 ArrayList实现了可变大小的数组。它允许所有元素,包括null。ArrayList没有同步。每个ArrayList实例都有一个容量(Capacity),即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加,但是增长算法并没有定义。当需要插入大量元素时,在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。 Vector非常类似ArrayList,但是Vector是同步的。由Vector创建的Iterator,虽然和ArrayList创建的Iterator是同一接口,但是,因为Vector是同步的,当一个Iterator被创建而且正在被使用,另一个线程改变了Vector的状态(例如,添加或删除了一些元素),这时调用Iterator的方法时将抛出ConcurrentModificationException,因此必须捕获该异常.
      

  3.   

    看看api,总会比我们讲的彻底下!毕竟是官方的帮助文档!!!