Vector与ArrayList的区别

Vector与ArrayList均为List接口的实现,采用数组存储数据。Vector方法同步保证线程安全,但效率较低;ArrayList非同步,效率较高。实际应用中依据是否需要线程安全选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VectorArrayList都是List接口的实现类,它们都代表链表形式的数据结构。但是,它们的实现和适用场景却有所区别。

 

 

SUN公司提供的JDK开发包中,包含了一个src.zip的文件,里面是java主要基础类的源代码。通过打开Vector.javaArrayList.java两个源文件,可以发现,它们二者的实现非常相似,都是用一个对象数组来存储元素的。但是,Vector的大多数成员方法都会加上synchronized关键字,也就是说Vector线程是安全的。

  由于Vector操作成员的方法必须保证同步,因此它的执行效率没有ArrayList高。所以,一般情况下,只有在必须保证同步的地方才使用Vector,而多数情况下,使用ArrayList更适合一些。

 以下是一段使用VectorArrayList的示例代码:

import java.util.ArrayList;

import java.util.Vector;

 

public class ListTest {

    public static void main(String[] args) {

       Vector<String> v=new Vector<String>(); //创建Vector对象

       v.add("hello");    //加入元素

       v.remove("hello");  //删除元素

       System.out.print(v.size()); //得到vector的元素数量

      

       ArrayList<String> al=new ArrayList<String>();

       al.add("hello");

       al.remove("hello");

       System.out.println(al.size()); //得打链表对象中的元素数量

    }

}

总结:Vector是线程安全的,因为它操作元素的方法都是同步方法,而ArrayList则不是。开发过程中应该根据需要进行选择,如果需要保证线程安全的地方则需要使用Vector,而不必要的时候则无需使用Vector,因为ArrayList效率会高一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值