Java中Vector和ArrayList之间的区别

向量与Java中的ArrayList

1)Java中的向量

  • Vector是List接口的实现类。

  • Vector是一个旧类,这意味着它不完全支持收集框架。

  • 在Java的早期版本中引入的Vector类,因此需要重新设计这些类以支持收集框架。

  • 当我们创建一个Vector对象时,默认存储容量为10,因此,如果达到最大容量,则将创建一个新的vector对象,并且如果我们存储该元素,则其容量将是新创建对象的当前容量的两倍。向量列表中的第11元素。

  • Vector是线程安全的,这意味着只允许一个线程对一个对象进行操作,这就是Vector是线程安全的原因。

  • 我们将看到给出的如何使用默认构造函数创建Vector对象的方法。
    语法:

    Vector v = new Vector();
  • Vector对象的默认大小为10,因此,如果达到其最大容量,则将在下面给出新容量
    新容量= 2 * Current_Capacity;

  • Vector类实现RandomAccess接口,以便我们可以以相同的速度访问随机元素。

示例

import java.util.*;

class VectorClass {
    public static void main(String[] args) {
        //创建一个Vector实例
        Vector v = new Vector();

        //显示Vector对象的默认容量
        System.out.println("Current Capacity:" + v.capacity());

        //循环打印10个元素
        for (int i = 0; i < 10; ++i)
            v.addElement(i);

        //显示添加至10个元素的容量
        System.out.println("Capacity of adding till 10 elements is:" + v.capacity());

        v.addElement(11);

        //达到最大容量后的新容量
        System.out.println("New Capacity after adding 11th element will be " + v.capacity());
    }
}

输出结果

E:\Programs>javac VectorClass.java
Note: VectorClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

E:\Programs>java VectorClass
Current Capacity:10
Capacity of adding till 10 elements is:10
New Capacity after adding 11th element will be 20

2)Java中的ArrayList

  • ArrayList是List接口的实现类。

  • ArrayList不是遗留类,这意味着它支持收集框架,我们不需要重新设计此类。

  • 当我们创建一个ArrayList对象时,默认存储容量为10,因此,如果该元素达到最大容量,则将创建一个新的ArrayList对象,并且该容量将增加(如当前创建的对象的一半)。如果我们将第11元素存储在Vector列表中,则新容量将为16。

  • ArrayList不是线程安全的,因为它不同步。

  • 我们将看到,如何使用ArrayList类创建ArrayList对象。
    语法:

    ArrayList object_name = new ArrayList();
  • ArrayList的默认大小为10。

  • ArrayList达到最大容量后,将创建一个具有新容量的新对象,并按以下方式计算新容量:
    New_capacity = Current_Capacity * 3/2 + 1

  • ArrayList类实现RandomAccess接口,以便我们可以以相同的速度访问随机元素。

示例

import java.util.*;

class ArrayListClass {
    public static void main(String[] args) {
        //创建一个ArrayList实例
        ArrayList al = new ArrayList();

        //循环打印10个元素
        for (int i = 0; i < 10; ++i)
            al.add(i);

        //显示添加至10个元素的容量
        System.out.println("Capacity of adding till 10 elements is:" + al.size());

        //循环以再次打印6个元素
        for (int j = 0; j < 6; ++j)
            al.add(j);

        //达到最大容量后的新容量
        System.out.println("New Capacity after adding 6 more element will be " + al.size());
    }
}

输出结果

E:\Programs>javac ArrayListClass.java
Note: ArrayListClass.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

E:\Programs>java ArrayListClass
Capacity of adding till 10 elements is:10
New Capacity after adding 6 more element will be 16