JDK中ArrayList和Vector区别

1 下面是关于 两者详细讲解,这位老师讲的非常好,我就直接引用了

ArrayList 讲解: http://www.cnblogs.com/skywang12345/p/3308556.html

Vector 讲解 :http://www.cnblogs.com/skywang12345/p/3308833.html


2区别:

 1:Array:List是线程不安全的,Vector采用同步机制是线程安全的,但也使得我们每次只能运行一个线程,属于重量级对象,导致效率低下

2 :ArrayList  有两个成员变量 :elementData 和size  

Vector  有三个成员变量: elementData ,elementCount,capacityIncrement

3: ArrayList 每次1.5倍自增容量  Vector成倍自增容量


4: ArrayList有三种访问方式 Vector有四种,ArrayLIst不支持枚举访问

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ArrayListvector都是Java常用的动态数组容器,它们在早期Java版本(如JDK 1.0-1.4)几乎等同,但自JDK 5.0开始,vectorVector类所取代,并且在后续版本性能和功能上有所改进。下面是ArrayListVector的主要区别: 1. **线程安全**: - ArrayList是非线程安全的,如果在多线程环境下使用,需要外部同步机制来保证数据一致性。 - Vector是线程安全的,提供了synchronized方法,可以在多线程环境直接使用。 2. **效率**: - ArrayList在大部分操作(如随机访问、添加/删除尾部元素)上的性能通常优于Vector,因为它是基于动态数组实现的,而Vector在插入/删除元素时会移动所有后续元素。 - Vector的索引查找通常更慢,尤其是在大型ArrayList。 3. **API**: - 自JDK 5.0开始,Vector的API已经被ArrayList所取代,ArrayList提供了更简洁、现代的接口。 4. **容量调整**: - ArrayList自动调整容量,当接近满载时会自动扩容,这可能在插入大量元素时产生性能开销。 - Vector在添加元素时也会自动扩容,但不会频繁地进行这种扩容。 5. **内存消耗**: - ArrayList可能会比Vector稍微占用更少的内存,因为它没有提供内置的同步机制。 如果你正在考虑使用,建议使用ArrayList,除非你明确需要线程安全或在非常旧的代码库。同时,现在Java 8引入了List接口的子类,如CopyOnWriteArrayList,提供了不同的并发性能特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值