Java集合—List集合

来源:互联网 发布:淘宝优惠券套现 编辑:程序博客网 时间:2024/05/18 04:57

List集合

【List

  元素有序(元素带角标索引)(存储顺序和取出顺序一致)  允许重复可以有null元素

  List又称为有序的Collection。它按对象进入的顺序保存对象,所以它能对列表中的每个元素的插入和删除位置进行精确的控制。同时,它可以保存重复的对象。

  List接口是Collection接口的一个子接口。 

  该接口的实现类:ArrayList    LinkedList    Vector

  一般情况下,使用哪种List接口下的实现类呢?

        如果要求查询快,考虑使用ArrayList

        如果要求增删快,考虑使用LinkedList

        如果要求线程安全,考虑使用Vector

 

    ArrayList

      (JDK1.2)

     底层的数据结构是数组数据结构

     特点是查询速度快(因为带角标)  但是增删速度稍慢,因为当元素多时,增删一个元素则所有元素的角标都得改变。

     线程不安全(不同步)。

     默认长度是10,当超过长度时,按50%延长集合长度。ArrayList默认扩充为原来的1.5(没有提供方法来设置空间扩充的方法);

 

 

    LinkedList

    (JDK1.2)

    底层数据结构式链表数据结构(即后面一个元素记录前一个)  双向列表,双向链表

      特点:索引查询速度慢,因为每个元素只知道前面一个元素;但增删速度快,因为元素再多,增删一个,只要让其前后的元素重新相连即可。

    线程不安全(不同步)。

    LinkedList提供了一些方法,使得LinkedList可以被当作堆栈和队列来使用。

 

 

    Vector

    (JDK1.0)

    底层数据结构是数组数据结构.

    特点是查询和增删速度都很慢

    默认长度是10,当超过长度时,100%延长集合长度。Vector默认扩充为原来的2(每次扩充空间的大小是可以设置的)。

    线程安全(同步)。   (Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList

    (Vector功能跟ArrayList功能一模一样,已被ArrayList替代)





原创粉丝点击