当前位置:   article > 正文

ArrayList和LinkedList、Vector的区别_arraylist和linkedlist和vector的区别

arraylist和linkedlist和vector的区别

在这里插入图片描述

1 ArrayList和LinkedList的区别:

(1)相同点:

  • LinkedeList和ArrayList都实现了List接口。
  • ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references)。

(2)不同点:

  • ArrayList底层的实现数组,而LinkedList是双向链表。
  • ArrayList进行随机访问所消耗的时间是固定的,因此随机访问时效率比较高。
    LinkedList是不支持快速的随机访问的,但是在插入删除时效率比较高。
2 ArrayList和Vector的区别:

(1)相同点:

  • ArrayList和Vector都是用数组实现的。
  • 默认初始化大小都是10

(2)不同点

  • Vector多线程是安全的,而ArrayList不是。Vector类中的方法很多有synchronized进行修饰,这样就导致了Vector在效率上无法与ArrayList相比;
  • 两个都是采用的线性连续空间存储元素,但是当空间不足的时候,两个类的增加方式是不同的。(ArrayList每次存储时会检查空间大小,不够时会扩充为原来的1.5倍,Vector会扩充为原来空间的2倍)
//capacityIncrement——增长因子
public Vector(int initialCapacity, int capacityIncrement) {
        super();
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
        this.elementData = new Object[initialCapacity];
        this.capacityIncrement = capacityIncrement;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  private int newCapacity(int minCapacity) {
        // overflow-conscious code
        int oldCapacity = elementData.length;
        int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
                                         capacityIncrement : oldCapacity);
  • 1
  • 2
  • 3
  • 4
  • 5
  • Vector可以设置增长因子,而ArrayList不可以。
  • ArrayList有三个构造方法,Vector有四个构造方法。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/322024
推荐阅读
相关标签
  

闽ICP备14008679号