当前位置: 首页 > 教程 > Java集合 >

ArrayList和Vector的区别

精华
小牛编辑
225浏览
2023-03-14

1 ArrayList和Vector的区别是什么

ArrayList和Vector都实现List接口,且存储元素都是有序的。

但是,ArrayList和Vector类之间还是很多区别的:

ArrayList Vector
ArrayList是非同步。(线程不安全) Vector是同步的。(线程安全)
如果元素数量超出其容量,ArrayList将增加当前数组大小的50%。 Vector递增100%,表示如果元素总数超过其容量,则数组大小增加一倍。
ArrayList 不是遗留类。它在JDK 1.2中引入。 Vector是一个遗留类。
ArrayList执行快速,因为它是非同步的。 Vector执行相对缓慢是因为它是同步的,即在多线程环境中,它将其他线程保持在可运行或不可运行状态,直到当前线程释放对象的锁为止。
ArrayList使用Iterator接口遍历元素。 Vector可以使用Iterator接口或Enumeration接口遍历元素。

2 Java ArrayList的例子

让我们看一个简单的示例,其中我们使用ArrayList来存储和遍历元素。

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java ArrayList的例子
 */
import java.util.*;
class TestArrayList21{
    public static void main(String args[]){

        List<String> al=new ArrayList<String>();//creating arraylist
        al.add("Eric");//adding object in arraylist
        al.add("Mark");
        al.add("Rose");
        al.add("Lucy");
        //traversing elements using Iterator
        Iterator itr=al.iterator();
        while(itr.hasNext()){
            System.out.println(itr.next());
        }
    }
}

输出结果为:

Eric
Mark
Rose
Lucy

3 Java Vector的例子

让我们看一个使用Enumeration接口的Java Vector类的简单示例。

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
/**
 *  Java Vector的例子
 */
import java.util.*;
class TestVector1{
    public static void main(String args[]){
        Vector<String> v=new Vector<String>();//creating vector
        v.add("eric");//method of Collection
        v.addElement("mark");//method of Vector
        v.addElement("lucy");
        //traversing elements using Enumeration
        Enumeration e=v.elements();
        while(e.hasMoreElements()){
            System.out.println(e.nextElement());
        }
    }
}

输出结果为:

eric
mark
lucy